显示一个窗口居中

时间:2013-11-12 08:55:52

标签: .net wpf xaml grid centering

我需要在Window的第二列中显示Grid。由于它是Window,我无法通过XAML将其直接添加到网格中。我可以通过编程方式找到Grid第二列的中心,以便在显示之前将窗口移动到那里吗?

我的第二个窗口只是一个奇特的小消息框。我之前尝试将其转换为UserControl而不是Window,因此我可以将其直接放在Grid的第二列中,但之后我无法对其进行ShowDialog() 。在继续前进之前,我必须等待用户单击“确定”。

3 个答案:

答案 0 :(得分:1)

对于其他寻找答案的人来说,这就是我最终的目标:

private void CenterWindowInRightPane(Window window, UIElement rightPane)
{
    Point loc = rightPane.TransformToAncestor(this).Transform(new Point(0, 0));
    w.Left = (this.Left + loc.X) + (rightPane.ActualWidth - w.ActualWidth) / 2;
    w.Top = (this.Top + loc.Y) + (rightPane.ActualHeight - w.ActualHeight) / 2;
}

答案 1 :(得分:0)

我认为MDI界面适合您的情况:http://wpfmdi.codeplex.com

答案 2 :(得分:0)

您可以使用Popup将网格设置为PlacementTarget并设置Placement=Center