Итак, у меня есть пользовательский элемент управления в окне, которое создает новое диалоговое окно при нажатии кнопки. Я хотел бы, чтобы окно появилось поверх окна, вызывающего его. Я пытался это сделать ...Центрирование нового диалогового окна в WPF
NewDialog dlg = new NewDialog();
dlg.WindowStartupLocation = WindowStartupLocation.CenterOwner;
dlg.ShowDialog();
Проблемы является владелец не кажется, вызывающее окно (возможно, потому, что пользовательский элемент управление делает вызов, а не фактическое окно?). Так что я попытался добавить это ...
dlg.Owner = Application.Current.Windows[0];
которая в основном работает, но это не является универсальным решением, как иногда мои новые окна должны вызвать новое окно, и я хочу, чтобы они сосредоточены на вызывающей окно, а не основное окно. Есть ли лучший способ правильно установить владельца в окно, в котором пользовательский элемент управления является частью? Я пробовал много вариантов, которые кажутся немного причудливыми, когда окно появляется в совершенно другом месте, или что-то не оценивает правильно и выдает ошибку.
Любые предложения?
Try 'dlg.Owner = это,' – LPL
^- вызывает ошибку компилятора, не может преобразовать тип управления пользователя в «окне» –