我需要Window
在我的Grid
. 由于它是一个Window
,我无法通过 XAML 将其直接添加到 Grid 中。我可以以编程方式找出网格第二列的中心,以便在显示之前将窗口移到那里吗?
我的第二个窗口只是一个花哨的小消息框。我之前试图将它转换为 aUserControl
而不是 a Window
,这样我就可以将它直接放在 Grid 的第二列中,但是我不能这样做ShowDialog()
。在继续之前,我必须等待用户单击“确定”。
对于其他寻找答案的人,这是我最终得到的结果:
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;
}
我认为 MDI 接口适合您的情况:http ://wpfmdi.codeplex.com
您可以使用Popup
将网格设置为的aPlacementTarget
并设置Placement=Center