我需要使用Width
的{{1}}和Height
属性来确定屏幕上应显示的位置。
当然,只有在您实际绘制窗口(通过Window
方法)之后才能使用这些内容。
现在我当前的黑客/解决方法是将Window.Show()
和Top
属性设置为Left
,-9999
,然后重新定位。
我想知道是否有非hacky方式这样做?
(旁注,看过文档后,我应该使用Show()
和ActualWidth
属性)
答案 0 :(得分:1)
您可以使用目标窗口的Loaded事件。在处理程序中,ActualWidth / ActualHeight和Width / Height都有效。
Window wnd; //...
wnd.Loaded += (object sender, RoutedEventArgs e) =>
{
// Set wnd.Top and wnd.Left here.
};
wnd.ShowDialog();
答案 1 :(得分:0)
这可能听起来很傻但值得一试;
将Window的opacity属性设置为0%,然后显示Window并计算尺寸。
答案 2 :(得分:0)
取决于您实际尝试的操作,您可以使用布局系统:
http://msdn.microsoft.com/en-us/library/ms745058%28v=vs.110%29.aspx
例如,您可以覆盖MeasureOverride或ArrangeOverride以在布局期间检测新大小。
答案 3 :(得分:0)
我在这里遗漏了一些东西。您只需在IDE中设置“位置”和“大小”属性即可。您也可以在Show()之前以编程方式设置它们。