繁体   English   中英

WPF 在 ViewBox 中计算 FontSize

[英]WPF Calculated FontSize Inside ViewBox

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

我有一个将显示在辅助屏幕上的窗口和一个包裹在视图框中的 TextBlock,文本被绑定并将在第二个屏幕上的运行时动态填充。 字体大小也是绑定的,可以由用户更改。

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

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

我怎么能得到帮助。 我想到的一种解决方案是计算可能在父网格的高度和宽度上的字体大小,这样当文本很长时,计算会将字体大小减少到可读的程度。

这是我的示例 Xaml

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

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

这是当文本很长并且字体大小设置得很高时的丑陋行为

预期行为。 这里字体大小手动设置得更低

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

我将文本块包裹在边框内并删除了文本块宽度的绑定,我将增加和减少宽度。 如果字体大小增加,我将在 ViewModel 中按比例减小宽度,反之亦然。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM