Microsoft がタブレットと PC 用の 1 つの OS、Windows 8 を作成したかどうかを考えていました。それなら、FontSize を制御する方法が必要です。例 i には、4 つの列を持つメイン グリッドがあります。
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid>
<TextBlock FontSize="20" Text="First Title"/>
</Grid>
<Grid Grid.Column="1">
<TextBlock Text="Second Longer In Characters Title" FontSize="20"/>
</Grid>
</Grid>
小さいデバイスでは、次のようになります。
このような大きなデバイスでは:
読めません!
ViewBox ソリューションを試しましたが、
文字数の関係で、同じ FontSizes が異なるサイズになりました。
例:
次に、すべてのページをViewBoxに入れようとしました:
また、星のサイズのグリッドがすべて台無しになるため、良くありません。
質問は次のとおりです。
1) FontSize を変更したときに TextBlock の幅を計算する方法はありますか? だから私は次のようなことができます:
foreach (TextBlock on a page)
{
//Find the textblock with biggest amount of characters
}
do
{
FoundTextBlock.FontSize=FontSize+1;
}
while (FoundTextBlock.WidthInPixel fits 200px)
foreach (TextBlock on a page)
{
//Set all text blocks the same FontSize
}
2) ViewBoxes の現在のストレッチ係数を取得する方法はありますか?
3) FontStretch= プロパティは何をしますか? -違いがわかりませんか?
4) フォントサイズを処理する他の方法はありますか?