C# 将情节提要放置在样式或数据模板中
我有一个故事板,动画图像的宽度。我使用expression blend创建了动画:C# 将情节提要放置在样式或数据模板中,c#,wpf,animation,styles,storyboard,C#,Wpf,Animation,Styles,Storyboard,我有一个故事板,动画图像的宽度。我使用expression blend创建了动画: <Storyboard x:Key="Storyboard1"> <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="imageFoo"> &
<Storyboard x:Key="Storyboard1">
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(FrameworkElement.Width)"
Storyboard.TargetName="imageFoo">
<EasingDoubleKeyFrame KeyTime="0:0:0.9" Value="335">
<EasingDoubleKeyFrame.EasingFunction>
<BackEase EasingMode="EaseOut"/>
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
问题是,我希望将该情节提要分配给应用程序中的所有图像,而不仅仅是图像imageFoo。我想在鼠标输入图像时启动动画。我该怎么做呢?您需要从情节提要中删除目标名称,并将触发器移动到样式中,谢天谢地,这样做不需要任何代码 在App.xaml文件(或任何资源集合)中
通过声明一个没有x:Key的样式并简单地给出一个TargetType,您基本上告诉WPF它应该应用于视觉树中具有该类型的每个元素
<Application.Resources>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)">
<EasingDoubleKeyFrame KeyTime="0:0:0.9" Value="335">
<EasingDoubleKeyFrame.EasingFunction>
<BackEase EasingMode="EaseOut"/>
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Application.Resources>