如果它比 WPF XAML 中的窗口大,如何缩放字体大小以适应窗口?

Posted

技术标签:

【中文标题】如果它比 WPF XAML 中的窗口大,如何缩放字体大小以适应窗口?【英文标题】:How to scale font size to fit the window if it's larger than the window in WPF XAML? 【发布时间】:2021-10-28 16:02:24 【问题描述】:

不确定这在 XAML 中是否很难做到,但我有一些 TextBlock,我使用固定字体大小在主窗口顶部显示。

如果这比主窗口大,它会调整主窗口的大小。我不想要这个。到目前为止我已经尝试过了,但无法阻止主窗口水平调整大小。

如果 TextBlock 不适合主窗口宽度,我想要调整它的大小。主窗口宽度是动态的,所以我不能使用固定的单位值。

代码如下:

<Viewbox StretchDirection="DownOnly">
    <Grid Name="InfoTextOverlay" Visibility="Hidden" HorizontalAlignment="Center">
        <TextBlock Text="Binding InfoText, ElementName=MyMainWindow" Foreground="White" FontSize="40" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
</Viewbox>

【问题讨论】:

这能回答你的问题吗? How to automatically scale font size for a group of controls? 有/没有Viewbox 你的代码不会为我调整主窗口的大小。将窗口的 SizeToContent 属性设置为 Manual ,如果不是。 @Maria,我需要主窗口来适应数据网格控件,所以它需要始终适应其内容,而不是顶部显示的文本块。 @Squirrel.98:谢谢,我今天去看看。 @Squirrel.98:我刚刚检查过,但它似乎覆盖复杂。不知道如何应用于我的案例,因为他有多个文本等。而我只想使用我选择的固定字体大小,除非它不适合我的窗口,然后调整大小以适应一些边距。 【参考方案1】:

如果您想避免自动宽度,请使用 TextWrapping="Wrap"。

如果您需要自动调整文本块的大小,只需删除 FontSize 属性

【讨论】:

以上是关于如果它比 WPF XAML 中的窗口大,如何缩放字体大小以适应窗口?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF 窗口上加载 Xaml 文件?

WPF字体缩放

如何使用 xaml 将 WPF 应用程序窗口启动位置设置为右上角?

如何在没有抗锯齿的情况下显示缩放图像?

WPF WebBrowser - 如何缩放内容?

wpf在xaml里做动画(移动),如何设定相对已知值的From起始值