【发布时间】:2016-08-16 17:02:32
【问题描述】:
这是一个非常奇怪的问题,我希望有人知道如何解决。 情况:
-
我们的 WPF 项目有一个表单,我们在该表单上显示上下文菜单(ContextMenu 控件)和弹出窗口(Popup 控件)以响应某些用户操作。在大多数情况下,它发生在鼠标单击某个文本块时。 这是一个例子:
popup = new Popup { Placement = PlacementMode.Relative, PlacementTarget = textBlock, StaysOpen = false }; . . . . . //later on mouse click: popup.IsOpen = true; 弹出窗口必须与其放置目标的左上角对齐(在我们的示例中为一些文本块),因此 - 将其重叠。它在所有情况下都运行良好,除了具有平板模式的 Windows 10 机器(如 MS Surface Pro)。 在这种环境中,我们的弹出窗口出现在放置目标的左侧,因此 - 不要与它们重叠。
我们发现它的发生是由于本文中描述的特殊 Windows 10 选项: http://www.isunshare.com/windows-10/show-context-menu-on-left-or-right-in-windows-10.html
此选项默认设置为“右手”(这是可以理解的),但我不明白为什么它会以这种方式影响 Popup 控件以及为什么即使在桌面模式下也会发生这种情况。
如果能找到一种方法来改变这种默认行为并让我们的 Popup 在任何情况下都显示为与父控件的左上角对齐,那就太好了。 有人知道怎么做吗?
【问题讨论】:
标签: c# wpf popup windows-10