6

ここで子ウィンドウの作成について前に質問しました...子ウィンドウを開くと、親ウィンドウの中央に表示されません。親ウィンドウの中央で開くように設定するにはどうすればよいですか?

4

3 に答える 3

19

この解決策は私にとってはうまくいきました。

これは、WPFで、ウィンドウをその親ウィンドウまたはアプリケーションのメインウィンドウのいずれかに中央揃えするために私が見つけた方法です。WinFormsでの方法とそれほど違いはありません。

子ウィンドウの場合、そのWindowStartupLocationを「CenterOwner」に設定します。これにより、所有しているウィンドウの中央に表示されます。崩壊

<Window x:Class="WpfApplication1.TestChild"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="TestChild" Height="300" Width="300"
    WindowStartupLocation="CenterOwner">

あとは、表示する前に所有者を設定するだけです。ウィンドウの表示に使用しているコードがWindowクラス内で実行されている場合は、これを使用できます。崩壊

TestChild testWindow = new TestChild();
testWindow.Owner = this;
testWindow.Show();

ただし、これが常に当てはまるとは限りません。場合によっては、ページまたはユーザーコントロールで実行されているコードから子ウィンドウを表示する必要があります。この場合、子ウィンドウをアプリケーションのメインウィンドウの中央に配置する必要があります。崩壊

TestChild testWindow = new TestChild();
testWindow.Owner = Application.Current.MainWindow;
testWindow.Show();
于 2011-05-02T07:04:59.360 に答える
3

これを試してください。

aboutWindow.WindowStartupLocation= WindowStartupLocation.CenterOwner ; 

aboutWindow.ShowDialog(this); 
于 2011-05-02T07:07:39.103 に答える
1

あなたはこれを試すことができます:

 AboutWindow window = new AboutWindow();
 window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
 window.Owner = this;

 window.ShowDialog();
于 2011-05-02T07:07:07.693 に答える