我有一个有几个TextBlock
s 的面板。我想修改这个面板,使每个 TextBlock 的字体大小根据面板的大小而变化。
当用户改变窗口的大小(例如最大化或恢复它)时,面板的大小可以改变。
我尝试使用Viewbox
:
<Viewbox Stretch="Fill">
<Grid Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Viewbox}}, Path=Width}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<TextBlock
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<TextBlock
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<TextBlock
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<TextBlock
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<TextBlock
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</Grid>
</Viewbox>
但它不起作用,因为
- 字体大小不会变大,当大小
Viewbox
增加时 - 当尺寸减小时,它不会变小
Viewbox
。
如何实现这些文本块的缩放(以便它们填充整个可用区域,并调整它们的字体大小)?