1. ホーム
  2. wpf

[解決済み] WPF : ダイアログをアプリケーションの中心に表示させるには?

2023-02-22 22:57:27

質問

からのダイアログの位置はどのように設定するのですか? .ShowDialog(); から来たダイアログをmainWindowsの中央に表示するように設定する方法です。

このように位置を設定するようにしています。

private void Window_Loaded(object sender, RoutedEventArgs e)
{        
    PresentationSource source = PresentationSource.FromVisual(this);
    if (source != null)
    {
        Left = ??
        Top = ??
    }
}

どのように解決するのですか?

以下のようにLoadedイベントでMainWindowを取得するようにしてください。

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    Application curApp = Application.Current;
    Window mainWindow = curApp.MainWindow;
    this.Left = mainWindow.Left + (mainWindow.Width - this.ActualWidth) / 2;
    this.Top = mainWindow.Top + (mainWindow.Height - this.ActualHeight) / 2;
}