如何设置WPF窗口的位置?

时间:2010-04-29 04:44:15

标签: wpf wpf-controls

我有一个列表视图,我在其中定义了一个自定义单元格作为用户控件。

在我给定用户超链接的自定义单元格中,当用户点击超链接时,我正在显示一个WPF对话框。

我希望WPF对话框位于超链接的上方..

请让我知道如何实现此操作或如何设置对话框的位置,使其位于超链接之上。

4 个答案:

答案 0 :(得分:62)

Window.LeftWindow.Top

var location = myTextBlock.PointToScreen(new Point(0,0));
window.Left = location.X;
window.Top = location.Y-window.Height;

答案 1 :(得分:12)

您需要将WindowStartupLocation设置为Manual(这是默认设置),并设置TopLeft属性值。

  

设置CenterScreen会使窗口位于包含鼠标光标的屏幕中央。

     

将WindowStartupLocation设置为CenterOwner会导致窗口位于其所有者窗口的中心(请参阅所有者),如果已指定。所有者窗口可以是另一个WPF窗口或非WPF窗口。

Source

答案 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适用于我)窗口会在第二台显示器上显示,然后您可以"最大化"