第二窗口定位WPF

时间:2012-08-30 10:26:05

标签: wpf window size width

我有MainWindow,它有一个按钮,允许它打开另一个WPF窗口。我希望这个窗口始终在MainWindow的右侧打开,几乎就在它旁边。

我该怎么做?这需要工作,即使MainWindow的宽度发生变化,因为我在MainWindow上有各种按钮,可以根据可见的面板改变MainWindow的大小。

2 个答案:

答案 0 :(得分:0)

如果您对其他窗口有引用,则可以计算新窗口的位置。

通过访问ActualWidth或Width属性访问Left和Top属性及其宽度来获取其他窗口位置。

现在,您可以通过添加左+宽+一些间距来计算新的窗口位置。

在此处查看Left属性的文档: http://msdn.microsoft.com/en-us/library/system.windows.window.left.aspx

其他人表现得很相似。

答案 1 :(得分:0)

您需要在属性或代码中为第二个窗口设置手动启动位置:

WindowStartupLocation = WindowStartupLocation.Manual;

在第一个窗口的事件Loaded,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();
    }