如何在 WPF 中制作闪烁的矩形描边



在WPF中的矩形下方:

<Rectangle Margin="5,0" HorizontalAlignment="Left"  Width="380" Height="25" Fill="LightYellow" Stroke="Orange" StrokeThickness="2" RadiusX="8" RadiusY="8"/>

当视图模型中的属性"StartBlinking"从 false 变为 true 时,我想开始喜欢几秒钟(然后停止(矩形笔触属性。

我想在 xaml 而不是 c# 代码中实现故事板。

我该怎么做?

我已经尝试过这个但不起作用:

<Rectangle Margin="5,0" HorizontalAlignment="Left"  Width="380" Height="25" Fill="LightYellow" Stroke="Orange" StrokeThickness="2" RadiusX="8" RadiusY="8">
<Rectangle.Style>
<Style TargetType="{x:Type Rectangle}">
<Style.Resources>
<Storyboard x:Key="flashAnimation" >
<DoubleAnimation Storyboard.TargetProperty="Stroke" From="1" To="0" AutoReverse="True" Duration="0:0:0.5" RepeatBehavior="Forever" />
</Storyboard>
</Style.Resources>
</Style>
</Rectangle.Style>    
</Rectangle>

我在Visual Studio 2008中使用C#和.NET 3.5。

您可以使用DataTriggerStoryboardStrokeOpacity属性进行动画处理:

<Rectangle Margin="5,0" HorizontalAlignment="Left"  Width="380" Height="25" Fill="LightYellow" 
Stroke="Orange" StrokeThickness="2" RadiusX="8" RadiusY="8">
<Rectangle.Style>
<Style TargetType="Rectangle">
<Style.Triggers>
<DataTrigger Binding="{Binding StartBlinking}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Stroke.(SolidColorBrush.Opacity)" 
To="0" AutoReverse="True" Duration="0:0:0.5" RepeatBehavior="6x" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Stroke.(SolidColorBrush.Opacity)" 
To="1" Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>

最新更新