電子書籍の厳選無料作品が豊富!

お世話になります。
宜しくお願いします。

WPFでTextBlockの高さを知りたいのですが
想定している値と大きく違っており、対処に困っております。

簡単な仕様ですが、
StackPanel に TextBlock を1つ、要素として追加して
TextBlock.Inlines.Add で順に String を追加させております。
TextBlock は Wrap に設定しております。

追加し終わったあとで、TextBlock.RenderSize.Height で取得すると
13.333・・・となります。

StackPanel の Height は150に設定しており、
TextBlock を目視しても150いっぱいに文字の表示があります。
むしろ StackPanel のHeightより大きくなるように設定してますので、
TextBlock の Height は200はないとおかしいのです。

この TextBlock.RenderSize.Height は、1行分の高さかと思い

textBlock.RenderSize.Height * textBlock.Inlines.Count で一旦やってみましたが

Wrap を True に設定してますので、改行があればあるほど
実際の長さとは異なってしまいます。


何か良い方法はないでしょうか

宜しくお願いいたします。

A 回答 (1件)

おそらく、textBlock.ActualHeightかと思われます。



RenderSizeのドキュメントを読むと、RdnderSizeを使うシチュエーションは限られていそうで、通常はActual***を用いるとあるためです。
http://msdn.microsoft.com/ja-jp/library/system.w …
この時、気をつけなければならないのは、ActualHeightの更新契機です。以下のURLが参考になるかと存じます。
http://csfun.blog49.fc2.com/blog-entry-41.html
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

感激です!
すぐに解決いたしました!

また宜しくお願いします。

お礼日時:2013/07/02 09:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!