gpt4 book ai didi

wpf - 我怎样才能拥有一个所有字体粗细都相同的 WPF TextBlock?

转载 作者:行者123 更新时间:2023-12-04 15:34:38 26 4
gpt4 key购买 nike

我会跳到追逐:有什么方法可以告诉 WPF TextBlock测量自身,使其大小在 FontWeight 时不会改变变化?

我有一个 TextBlock根据样式动态更改字体粗细。 TextBlockRadioButton 里面所以选中时为粗体,否则为正常:

<Style x:Key="BoldWhenChecked" TargetType="RadioButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="TextElement.FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style

这是单选按钮本身:
<StackPanel Orientation="Horizontal">
<RadioButton Style="{StaticResource BoldWhenChecked}">
<TextBlock Text="Item 1" />
</RadioButton>
<RadioButton Style="{StaticResource BoldWhenChecked}">
<TextBlock Text="Item 2" />
</RadioButton>
<RadioButton Style="{StaticResource BoldWhenChecked}">
<TextBlock Text="Item 3" />
</RadioButton>
etc...
</StackPanel>

不幸的是,由于我没有使用固定宽度的字体, TextBlock 的宽度当字体粗细改变时,整个单选按钮面板也会相应地移动,这在视觉上很不和谐。

最佳答案

我通过添加一个隐藏的 TextBlock 来解决这个问题。在RadioButton的内容中与其 FontStyle明确设置为 Bold :

<RadioButton Style="{StaticResource BoldWhenChecked}">
<Grid>
<TextBlock Text="Item 1" />
<TextBlock Text="Item 1" FontStyle="Bold" Visibility="Hidden" />
</Grid>
</RadioButton>

这样,当 RadioButton 被选中并且可见时 TextBlock加粗,宽度不会因为隐藏 TextBlock 而改变已经适本地调整了网格的大小。

关于wpf - 我怎样才能拥有一个所有字体粗细都相同的 WPF TextBlock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20556328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com