我正在尝试提出一种创造性的解决方案来实现这一特殊效果:
我最初的想法:具有色度键着色器效果的动态大小的矩形将在文本上滑动到位。但是,我不想破坏着色器往往会出现文本边缘的保真度。
我还考虑使用FormattedText类,但我不确定它是否支持我正在尝试做的事情。
有什么建议吗?
修改的 为了澄清,该文本基本上是一个'TabItem'。我希望突出显示的块可以跨所有选项卡项浮动到所选项。它们目前在Canvas中布局,逻辑处理它们的位置。一个简单的动画似乎不够。
答案 0 :(得分:3)
这应该会给你你想要的效果。这使用渐变画笔作为颜色,但它使用3个渐变色标来确保颜色从一个到另一个立即变化而中间没有渐变。
<Window
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"
xmlns:local="clr-namespace:TestingWPF"
mc:Ignorable="d"
x:Class="TestingWPF.TestWindow"
d:DesignWidth="477" d:DesignHeight="214"
Background="Black">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="74" FontWeight="Bold">
<TextBlock.Foreground>
<LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
<GradientStop Color="White" Offset="0"/>
<GradientStop x:Name="WhiteOffset" Color="White" Offset="1"/>
<GradientStop x:Name="GrayOffset" Color="Gray" Offset="1"/>
</LinearGradientBrush>
</TextBlock.Foreground>
<TextBlock.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard Storyboard.TargetProperty="Offset" Duration="0:0:1" RepeatBehavior="Forever">
<DoubleAnimation Storyboard.TargetName="WhiteOffset" From="0" To="1" />
<DoubleAnimation Storyboard.TargetName="GrayOffset" From="0" To="1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TextBlock.Triggers>
Some Text
</TextBlock>
</Window>