如何在wpf中为两个文本框网格设置动态字体大小

时间:2016-05-06 15:46:14

标签: c# wpf xaml

我在side dockpanel中有两个文本块我需要根据块的大小设置字体大小。

 <Border Grid.Row="0"
  CornerRadius="2"
  BorderBrush="White"
  BorderThickness="2"
  Background="Black"
  Margin="2,0,0,1">
  <DockPanel LastChildFill="True">
      <TextBlock DockPanel.Dock="Bottom"
         Text="{Binding TextWork}"
         Style="{DynamicResource Label}"
         HorizontalAlignment="Center"
         VerticalAlignment="Bottom"
         TextWrapping="Wrap"
         FontSize=?
         Foreground="White"
         TextAlignment="Center"
         Margin="0,0,0,2" />
        <TextBlock DockPanel.Dock="Top"
        Text="{Binding AwaitingWorkUI}"
        Style="{DynamicResource Header}"
        Margin="0,2,0,0"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"

        FontSize="?"
        Foreground="White"
        TextAlignment="Center" />
      </DockPanel>
   </Border>

这是在一个控件中,控件缩小以适应网格,网格根据多少个单元格缩小

2 个答案:

答案 0 :(得分:0)

这样的方向怎么样? textBlock中只有1行?

textBlockFirst.FontSize= textBlockFirst.Height( and additionally plus minus some number here);

将它放在textBlock_LostFocus或TextChanged等事件中。

这应该不难......

答案 1 :(得分:0)

谢谢大家的建议,最后我选择了两个转换器作为底部项目,一个转换为顶级项目。然后我将一个显示计数属性添加到传入的视图模型中,并将此绑定和转换器绑定到字体大小。它们的显示计数将传递到转换器并返回该显示计数的字体大小