別のWPFウィンドウを開くことができるボタンを持つMainWindowがあります。このウィンドウは、常に MainWindow の右側で、実質的にそのすぐ隣に開くようにします。
これどうやってするの?MainWindow には、表示されているパネルに応じて MainWindow のサイズを変更できるさまざまなボタンがあるため、MainWindow の幅が変更された場合でも、これは機能する必要があります。
他のウィンドウへの参照がある場合は、新しいウィンドウが必要な場所を計算できます。
Left プロパティと Top プロパティにアクセスして他のウィンドウの位置を取得し、ActualWidth または Width プロパティにアクセスしてその幅を取得します。
これで、左 + 幅 + 間隔を追加することで、新しいウィンドウの位置を計算できます。
ここで Left プロパティのドキュメントを確認してください: http://msdn.microsoft.com/en-us/library/system.windows.window.left.aspx
他の人も同様に振る舞います。
プロパティまたはコードで、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();
}