[.NET] WPF のコントロールの座標を取得する
WPF のテキストボックスとかのコントロールには、 Left や Top といった、 それ自身の位置を返してくれるプロパティがありません (;;
というわけで、 とりあえずこんなんで… f(^^;
private Rect GetRectOnScreen(UIElement control) {
Point targetLeftTop = control.PointToScreen(new Point(0.0, 0.0));
return new Rect(targetLeftTop.X, targetLeftTop.Y, control.RenderSize.Width, control.RenderSize.Height);
}
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
「* プログラミング ( WPF )」カテゴリの記事
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- [VS2010] (続) オプション 「生成されたコードから結果を表示しない」 の挙動不審(2011.08.24)
- う~む… .NET Framework 4 になっても、 IE を操作するのはめんどくさいままなのか!(2010.12.04)
- MSDN マガジン、読んでますか!?(2010.05.27)
- [WPF] 盾アイコン付きのボタンを作る (続)(2010.02.20)
この記事へのコメントは終了しました。
コメント
> GetRectOnScreen(); の() にはなにを
書いた通りで、 UIElement の子孫、 というか、 Visual クラス
http://msdn.microsoft.com/ja-jp/library/system.windows.media.visual.aspx
を継承しているコントロールなら、 基本的に何でも。
ただし。 これでテキストボックスの 4頂点の座標が取得できる、 と言っても…
たとえば、 テキストボックスの外側にエフェクトを付けたとして。 そのエフェクトの外側の座標が取れるわけではないです。
> xmlのウィンドウサイズを知りたい
ちょっと意味不明ですが…
WPF で描画しているウィンドウの外形サイズ、 ってことですか? それは、 取れないんじゃないかなぁ。
あ、 3.0 からは、 Window.Width, Window.Height で取れるようになってますね。
投稿: biac | 2009年1月21日 (水) 00時33分
xmlのウィンドウサイズを知りたいと思い、探していてたどりつきました。
これを使うとしたら、
GetRectOnScreen();
の()にはなにをいれたらよいでしょう?
アドバイスいただけるとうれしいです。
投稿: | 2009年1月20日 (火) 19時26分