gpt4 book ai didi

c# - 可以通过在 WPF 中平滑地更改字体粗细来脉冲文本吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:18 24 4
gpt4 key购买 nike

我想为某些文本(又名 WPF Run 对象)添加淡入/淡出效果。我不希望它一次切换粗体/非粗体。我希望它在粗体和正常之间设置动画。这可能吗?

最佳答案

我认为您不能在 Fontweight 之间制作动画,因为它们就像没有“中间”状态的固定值。我认为最好的办法是有 2 个文本 block (一个普通文本 block 和一个粗体文本 block ,具有相同的文本)然后为两者设置不透明度动画,使普通文本 block 淡出而粗体文本 block 淡入。这样它看起来就像字体以动画方式从正常“过渡”到粗体。

<Control>
<Control.Template>
<ControlTemplate>
<DockPanel>
<ToggleButton x:Name="btn" Content="IsBold"/>
<Grid Width="200">
<TextBlock Text="Transition" x:Name="normal" TextAlignment="Center"/>
<TextBlock Text="Transition" FontWeight="Bold" Opacity="0" x:Name="bold" TextAlignment="Center"/>
</Grid>
</DockPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" SourceName="btn" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard Duration="00:00:01">
<DoubleAnimation Storyboard.TargetName="normal" Storyboard.TargetProperty="Opacity" To="0"/>
<DoubleAnimation Storyboard.TargetName="bold" Storyboard.TargetProperty="Opacity" To="1"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard Duration="00:00:01">
<DoubleAnimation Storyboard.TargetName="normal" Storyboard.TargetProperty="Opacity" To="1"/>
<DoubleAnimation Storyboard.TargetName="bold" Storyboard.TargetProperty="Opacity" To="0"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</ControlTemplate.Triggers>



</ControlTemplate>
</Control.Template>
</Control>

关于c# - 可以通过在 WPF 中平滑地更改字体粗细来脉冲文本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13145702/

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