我有一个列表视图,我在其中定义了一个自定义单元格作为用户控件。
在我给定用户超链接的自定义单元格中,当用户点击超链接时,我正在显示一个WPF对话框。
我希望WPF对话框位于超链接的上方..
请让我知道如何实现此操作或如何设置对话框的位置,使其位于超链接之上。
答案 0 :(得分:62)
var location = myTextBlock.PointToScreen(new Point(0,0));
window.Left = location.X;
window.Top = location.Y-window.Height;
答案 1 :(得分:12)
您需要将WindowStartupLocation
设置为Manual
(这是默认设置),并设置Top
和Left
属性值。
设置CenterScreen会使窗口位于包含鼠标光标的屏幕中央。
将WindowStartupLocation设置为CenterOwner会导致窗口位于其所有者窗口的中心(请参阅所有者),如果已指定。所有者窗口可以是另一个WPF窗口或非WPF窗口。
答案 2 :(得分:3)
您需要获取超链接的坐标,然后设置窗口位置,如下所示:
http://blog.fossmo.net/post/How-to-set-the-windows-position-in-WPF.aspx
要获取元素的相对/绝对位置,请查看以下提示:
http://ivolo.mit.edu/post/WPF-Mouse-and-Point-Acrobatics.aspx
答案 3 :(得分:-1)
如果您将窗口设置为.Left,那么显示器尺寸(2000适用于我)窗口会在第二台显示器上显示,然后您可以"最大化"