酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windowsストアアプリで指定したフォントとサイズから文字列のサイズを調べる

Windowsストアアプリで「指定したフォントとそのサイズ」から表示される文字列のサイズを知りたかったのですが、描画サイズを調べるAPIは用意されておらず困っていたところ、Stackoverflowで同じ疑問を質問されている方がいました。

どうやらコード上でTextBlockを生成して、必要な情報を詰めた後にUIElementクラスから継承されているMeasureメソッドを実行して、DesiredSizeを更新します。

TextBlock dummyTextBlock = new TextBlock();
dummyTextBlock.FontFamily = new FontFamily("Tahoma");
dummyTextBlock.FontSize = 18;
dummyTextBlock.FontStyle = FontStyle.Normal;
dummyTextBlock.FontWeight = FontWeights.Bold;
dummyTextBlock.Text = "X";
dummyTextBlock.Measure(new Size(0,0));
dummyTextBlock.Arrange(new Rect(0,0,0,0));
double width = dummyTextBlock.ActualWidth;
double height = dummyTextBlock.ActualHeight;

参考