WPF在ViewBox内计算FontSize

时间:2017-03-11 09:06:14

标签: c# wpf

我遇到了一个问题,并尝试了互联网和线程来找到解决方案,但还没有找到。 我是编程的初学者,任何帮助都将不胜感激。

我有一个窗口,它将显示在辅助屏幕上,一个TextBlock包装在一个视图框中,文本被绑定,并将在运行时在第二个屏幕上以dymnamically的形式填充。 fontsize也是Binded,可以由用户更改。

这非常有效。 问题是当用户将fontsize增加到更高的值时,如果文本很短,则文本看起来很好但如果文本非常大,则文本看起来很难看有时会变得不可读。

我已经尝试了ViewBox的Sretch方向和拉伸,但没有找到更好的方法来解决我的问题,但是如果文本非常长并且文本不可读则减少字体大小使文本可读。

我如何得到帮助。我想到的一个解决方案是计算父网格的高度和宽度上的字体大小,这样当文本很长时,计算会将字体大小减少到可读的位置。

这是我的样本Xaml

<Grid>
    <Viewbox Stretch="Fill"
             StretchDirection="DownOnly">
        <TextBlock Text="{Binding}"
                   Width="{Binding}"
                   FontSize="{Binding}"
                   TextWrapping="Wrap">

        </TextBlock>
    </Viewbox>
</Grid>

Here is the Ugly Behavior when text is very long and fontsize is set highly

Expected behavior. Here the fontsize is manually set lower

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决问题的方法。如果有人有其他解决方案,将受到欢迎。

我将文本块包装在边框内,并删除了文本块宽度的绑定,并将其手动设置为1200.

<Grid>
<Viewbox >
    <Border>
    <TextBlock Text="{Binding}"
               Width="{1200}"
               FontSize="{Binding}"
               TextWrapping="Wrap">

    </TextBlock>
   </Border>
</Viewbox>

相关问题