2

別のWPFウィンドウを開くことができるボタンを持つMainWindowがあります。このウィンドウは、常に MainWindow の右側で、実質的にそのすぐ隣に開くようにします。

これどうやってするの?MainWindow には、表示されているパネルに応じて MainWindow のサイズを変更できるさまざまなボタンがあるため、MainWindow の幅が変更された場合でも、これは機能する必要があります。

4

2 に答える 2

0

他のウィンドウへの参照がある場合は、新しいウィンドウが必要な場所を計算できます。

Left プロパティと Top プロパティにアクセスして他のウィンドウの位置を取得し、ActualWidth または Width プロパティにアクセスしてその幅を取得します。

これで、左 + 幅 + 間隔を追加することで、新しいウィンドウの位置を計算できます。

ここで Left プロパティのドキュメントを確認してください: http://msdn.microsoft.com/en-us/library/system.windows.window.left.aspx

他の人も同様に振る舞います。

于 2012-08-30T11:48:20.373 に答える
0

プロパティまたはコードで、2 番目のウィンドウの起動場所を手動で設定する必要があります。

WindowStartupLocation = WindowStartupLocation.Manual;

最初のウィンドウのイベント Loaded、SizeChanged、LocationChanged で、次のように 2 番目のウィンドウの位置を調整する必要があります。

    public void AdjustPosition()
    {
        window2.Left = Application.Current.MainWindow.Left + Application.Current.MainWindow.ActualWidth;
        window2.Top = Application.Current.MainWindow.Top;
    }

    private void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
            AdjustPosition();
    }

    private void MainWindow_SizeChanged(object sender, SizeChangedEventArgs e)
    {
           AdjustPosition();
    }

    void MainWindow_LocationChanged(object sender, EventArgs e)
    {
           AdjustPosition();
    }
于 2012-08-30T11:53:26.197 に答える