« TDD と C0 カバレッジ | トップページ | IE7 の自動配布は、 2008年2月13日から »

2007年12月18日 (火)

[.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);
}

|

« TDD と C0 カバレッジ | トップページ | IE7 の自動配布は、 2008年2月13日から »

* プログラミング ( WPF )」カテゴリの記事

プログラミング」カテゴリの記事

コメント

xmlのウィンドウサイズを知りたいと思い、探していてたどりつきました。
これを使うとしたら、
GetRectOnScreen();
の()にはなにをいれたらよいでしょう?
アドバイスいただけるとうれしいです。

投稿: | 2009年1月20日 (火) 19時26分

> 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分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/17404389

この記事へのトラックバック一覧です: [.NET] WPF のコントロールの座標を取得する:

« TDD と C0 カバレッジ | トップページ | IE7 の自動配布は、 2008年2月13日から »