web-dev-qa-db-ja.com

WPFウィンドウの場所を設定する方法は?

ユーザーコントロールとしてカスタムセルを定義したリストビューがあります。

ユーザーハイパーリンクを指定したカスタムセルでは、ユーザーがハイパーリンクをクリックするとWPFダイアログが表示されます。

WPFダイアログがハイパーリンクのすぐ上に来るようにします。

これを実現する方法、またはハイパーリンクの上にちょうど来るようにダイアログの場所を設定する方法を教えてください。

32
Ashish Ashu

Window.Left および Window.Top

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

WindowStartupLocationManual (ただしデフォルト)に設定し、TopLeftを設定する必要があります。プロパティ値。

CenterScreen を設定すると、マウスカーソルを含む画面の中央にウィンドウが配置されます。

WindowStartupLocationを CenterOwner に設定すると、指定されている場合、ウィンドウはその所有者ウィンドウ(所有者を参照)の中央に配置されます。所有者ウィンドウは、別のWPFウィンドウまたは非WPFウィンドウのいずれかです。

ソース

12
ChrisF

ハイパーリンクの座標を取得し、次に示すようにウィンドウの位置を設定する必要があります。

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
Igor Zevaka