在将 Popup 控件绘制到屏幕后,如何确定其相对于其目标的位置 (PlacementMode)?我注意到虽然我将弹出窗口的放置设置为底部,但当屏幕上剩余的空间很小时,它会选择反转放置。这一切都很好,只要有一种方法可以检索更新的放置。到目前为止,检查 Placement 似乎返回了我设置的实际值,并且垂直和水平偏移量都是 0.0。
问问题
5405 次
1 回答
2
当您设置 PlacementMode 时,您建议您希望弹出窗口出现在与 PlacementTarget、PlacementRectangle 相关的位置,或者默认情况下它是父级。出于安全考虑,弹出窗口不能绘制在屏幕边界之外。
弹窗位置参考:
http://msdn.microsoft.com/en-us/library/bb613596.aspx
如果您想更好地控制弹出窗口在遇到屏幕边缘时的呈现方式,可以指定自定义弹出窗口位置。
如此处所述:
http://msdn.microsoft.com/en-us/library/ms743607.aspx
这使您可以指定主要偏移和对齐方式,如果第一个不可用,则可以指定次要偏移和对齐方式。当发生冲突时,它会选择显示弹出窗口最大部分的位置。
如果您真的需要弹出窗口的坐标,这篇文章有一个 win32 技巧,您可以使用它来获取弹出窗口的确切位置。
但是您应该能够通过指定自定义位置来解决大多数布局问题。
于 2013-06-12T21:12:57.440 回答