C# 视口框内WPF计算字体大小
我遇到了一个问题,在这里尝试了互联网和线程来寻找解决方案,但还没有找到。 我是一名编程初学者,如有任何帮助,将不胜感激 我有一个窗口,它将显示在第二个屏幕上,一个文本块包装在一个视图框中,文本被绑定,并将在运行时在第二个屏幕上动态填充。fontsize也是绑定的,用户可以更改 这是非常好的工作。 问题是,当用户将fontsize增加到更高的值时,如果文本很短,文本看起来很好,但是如果文本非常大,文本看起来很难看,有时会变得不可读 我尝试过ViewBox的Sretch方向和拉伸,但没有找到更好的方法来解决我的问题,但是如果有非常长的文本且文本不可读,请手动减少fontsize使文本可读 我能得到什么帮助。我想到的一个解决方案是根据父网格的高度和宽度计算fontsize,这样当文本很长时,计算会将fontsize减小到可读的程度 这是我的示例XamlC# 视口框内WPF计算字体大小,c#,wpf,C#,Wpf,我遇到了一个问题,在这里尝试了互联网和线程来寻找解决方案,但还没有找到。 我是一名编程初学者,如有任何帮助,将不胜感激 我有一个窗口,它将显示在第二个屏幕上,一个文本块包装在一个视图框中,文本被绑定,并将在运行时在第二个屏幕上动态填充。fontsize也是绑定的,用户可以更改 这是非常好的工作。 问题是,当用户将fontsize增加到更高的值时,如果文本很短,文本看起来很好,但是如果文本非常大,文本看起来很难看,有时会变得不可读 我尝试过ViewBox的Sretch方向和拉伸,但没有找到更好的方
<Grid>
<Viewbox Stretch="Fill"
StretchDirection="DownOnly">
<TextBlock Text="{Binding}"
Width="{Binding}"
FontSize="{Binding}"
TextWrapping="Wrap">
</TextBlock>
</Viewbox>
</Grid>
好的,我找到了解决这个问题的方法。如果有人有另一个解决方案,我们会欢迎的 我将textblock包装在一个边框内,并移除了textblock宽度的绑定,我将增加和减少宽度。如果字体大小增加,我将在ViewModel中将宽度减少一个比率,反之亦然
<Grid>
<Viewbox >
<Border>
<TextBlock Text="{Binding}"
Width="{Binding}"
FontSize="{Binding}"
TextWrapping="Wrap">
</TextBlock>
</Border>
</Viewbox>
您必须处理最小/最大大小,还可以根据FontSize
计算宽度,这可以通过System.Windows.Media.FormattedText
类完成。感谢您的回复。我试试这个