所以,我最近一直在研究SizeChanged
事件,因为我希望我的字体大小按比例缩放,虽然我搜索了很多帖子,但没有一个对我有用 - 我的对象不是烧成。
这是我的代码:
private void MainWindow_SizeChanged(object sender, SizeChangedEventArgs e) {
welcomeTitleText.Text = "hi";
}
这甚至不像窗口大小那样使用,它只是更改文本,以确保它被触发。但是,由于某种原因它不起作用。有什么想法吗?
答案 0 :(得分:1)
确保您订阅了该活动。您必须在代码或xaml中注册事件的处理程序。
在代码示例中:
public MainWindow()
{
// This call is required by the designer.
InitializeComponent();
// Add any initialization after the InitializeComponent() call.
this.SizeChanged += MainWindow_SizeChanged;
}
或在xaml:
<Window
x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
...
Loaded="AboutWindow_Loaded">
...
另请注意,如果wpf的后端认为更改太微不足,有些时候sizeChanged事件不会触发。 See the docs for more details
提示,您可以尝试在Viewbox中包装文本,这会将其自动调整为最大填充大小。然后你可以限制视图框(或它的容器的大小(即最大宽度,最大高度)(我建议使用网格,并使用*(星标)或pt查看列和行高) ,more details here)以实现合理的缩放。例如:
<Viewbox MaxHeight="50">
<TextBlock>I'm Scaled Text</TextBlock>
</Viewbox>