Rom*_*šil 5 wpf resources animation xaml storyboard
在 XAML 文档中,我有一个渐变画笔作为资源和一堆使用该资源的形状。我想使用故事板为画笔设置动画,但我不知道如何将资源中的画笔设置为故事板的目标。简单地使用它的名字是行不通的,{StaticResource name} 也行不通。甚至有可能吗?
我更喜欢仅使用 XAML 的解决方案,但如果这行不通,我将使用代码隐藏。如果它让我离开 Storyboard.Target 和 Storyboard.TargetProperty 未分配。
编辑:我想为画笔的渐变停止设置动画。问题是当它不是资源而是直接应用于对象时,我可以轻松地为其设置动画。我可以通过单击 Expression Blend 来做到这一点。我只是不知道如何在它是资源时为其设置动画(即在下面的代码中放置什么而不是 ?? (故事板是为矩形创建的))
code:
<UserControl.Resources>
<LinearGradientBrush x:Key="Outline" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#7F7CE3FF" Offset="0"/>
<GradientStop Color="#7F047695" Offset="1"/>
<GradientStop Color="#FFFFFFFF" Offset="0.942"/>
</LinearGradientBrush>
<Storyboard x:Key="Glitter">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="??" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Offset)">
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
<SplineDoubleKeyFrame KeyTime="00:00:02.6000000" Value="0.529"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
...
Run Code Online (Sandbox Code Playgroud)
小智 1
您无法为 Brush 类型的属性设置动画,只能为具有适当动画类的类型设置动画,例如 DoubleAnimation、PointAnimation 或 ColorAnimation(请注意,最后一个为 Color 类型的属性设置动画,而不是 Brush)。
但是,某些画笔具有 double 类型的 DependencyProperties,您可以对其进行动画处理,例如 LinearGradientBrush 类的 StartPoint 和 EndPoint 属性。
如果您能详细说明动画应该做什么,也许我们可以找到解决方法。
编辑:要为画笔设置动画,必须在动画触发器的范围内声明它,例如在数据模板或控制模板中。通过资源的键对资源进行动画处理将不起作用。