【WPF】窗口缩放自适应
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【WPF】窗口缩放自适应相关的知识,希望对你有一定的参考价值。
参考技术A <Grid><Viewbox Stretch=" fill">
<Canvas Width=" 525" Height=" 350">
<Button Content="按键1" HorizontalAlignment="Left" Margin="28,23,0,0" VerticalAlignment="Top" Width="75"/>
<Button Content="按键2" HorizontalAlignment="Left" Margin="416,275,0,0" VerticalAlignment="Top" Width="75"/>
</Canvas>
</Viewbox>
</Grid>
</Window>
主要部分是我们在Canvas最外层添加了ViewBox,由于ViewBox的stretch属性默认是Uniform,所以我们要设置为Fill,这样能保正是填充满窗体,canvas的宽度和高度必须设定,否则显示不出来。
如果它比 WPF XAML 中的窗口大,如何缩放字体大小以适应窗口?
【中文标题】如果它比 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】窗口缩放自适应的主要内容,如果未能解决你的问题,请参考以下文章