我有MainWindow它有一個按鈕,允許它打開另一個WPF窗口。我希望這個窗口總是在MainWindow的右邊打開,幾乎就在它旁邊。第二個窗口定位WPF
我該怎麼做?這需要工作,即使MainWindow的寬度發生變化,因爲我在MainWindow上有各種按鈕,可以根據可見的面板更改MainWindow的大小。
我有MainWindow它有一個按鈕,允許它打開另一個WPF窗口。我希望這個窗口總是在MainWindow的右邊打開,幾乎就在它旁邊。第二個窗口定位WPF
我該怎麼做?這需要工作,即使MainWindow的寬度發生變化,因爲我在MainWindow上有各種按鈕,可以根據可見的面板更改MainWindow的大小。
如果您有對其他窗口的引用,則可以計算出新窗口的位置。
通過訪問ActualWidth或Width屬性訪問Left和Top屬性及其寬度,獲取其他窗口位置。
現在您可以通過添加Left + Width + Some spacing來計算新的窗口位置。
退房這裏Left屬性的文檔: http://msdn.microsoft.com/en-us/library/system.windows.window.left.aspx
其他人相若方式表現。
您需要設置的屬性或代碼,第二個窗口手動啓動位置:
WindowStartupLocation = WindowStartupLocation.Manual;
在加載事件,SizeChanged將,第一個窗口的LocationChanged,你應該調整第二窗口的位置是這樣的:
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();
}
謝謝,它工作的一種享受。 –