Это может быть дубликат, но я просмотрел его и просмотрел StackOverFlow, чтобы попытаться найти исправление для этой проблемы, и это все равно не сработает. Я пытаюсь центрировать окно (диалоговое окно ввода) в моем главном окне. Он должен быть вертикально центрирован, а ширина нового окна (диалоговое окно) должна быть шириной MainWindow.Центрирование нового окна в mainwindow
Это то, что я пытался до сих пор:
Application curApp = Application.Current;
Window mainWindows = curApp.MainWindow;
this.Left = mainWindows.Left;
this.Top = mainWindows.Top + (mainWindows.ActualHeight - this.ActualHeight)/2;
this.Width = mainWindows.ActualWidth;
Вышеприведенный код находится в нагруженном случае окна диалога.
Хотя центры вертикально, он не ставит его в точном центре MainWindow (т.е. Левые свойства не совпадают.)
Пожалуйста, помогите.
Это, как я вызвать диалоговое окно:
var dialog = new MyDialog();
dialog.ShowMessage("Capture Amount", "Please enter the 'Capture Amount'");
if (dialog.ShowDialog() == true) {
DialogResponse = dialog.ResponseAmount.ToString();
CustomTitleMain = "Main Window: " + CurrencyCode.ToString() + " " + DialogResponse.ToString();
}
DialogResponse, CurrencyCode и ResponseAmount является свойством. Первые два являются строками, последние - десятичными.
Вы хотите что-то вроде ** mainWindows .WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner; ** –
Не имеет значения, если вы сначала задали свойство 'Width'? –
Нет, нет, его все еще немного. –