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;