0
我想动画按钮阴影效果的颜色,当鼠标进入边界。 我试试这个代码,并不适合我。 我不知道问题在哪里?Silverlight动画风格从资源文件
<Style x:Name="HeaderButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="Border" BorderBrush="#FF550211" BorderThickness="0" CornerRadius="4">
<Border.Triggers>
<EventTrigger RoutedEvent="Border.MouseEnter">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Color" Storyboard.TargetName="MenuButtonShadow"
From="#FFFFFFFF" To="#FF000000" Duration="0:0:0.3"></ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFAF1232" Offset="0" />
<GradientStop Color="#FFB60329" Offset="1" />
</LinearGradientBrush>
</Border.Background>
<ContentPresenter Margin="8, 0" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect x:Name="MenuButtonShadow" ShadowDepth="0" BlurRadius="4"></DropShadowEffect>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="White"></Setter>
<Setter Property="Margin" Value="4"></Setter>
</Style>
你好,谢谢安德鲁。你能告诉我如何开始在资源文件中的故事板? –
哎呀,我的解决方案假定您有一个代码隐藏文件,但你的问题的标题清楚地表明,你的代码是一个资源文件。抱歉!也许你可以创建一个名为FancyBorder的新UserControl,它包含你在ControlTemplate中定义的边界。在UserControl.Resources中定义Storyboard,并将事件处理程序放入新的UserControl的代码隐藏中。然后在你的资源文件,'<控件模板> 控件模板>'。 ContentPresenter不再是Border的子项,但我认为它仍然看起来一样。希望有所帮助! –
Andrew
考虑其他的选择可能是使用[行为/触发】(http://www.silverlightshow.net/items/Behaviors-and-Triggers-in-Silverlight-3.aspx),或[VisualStateManager(HTTP ://msdn.microsoft.com/en-us/library/cc278064(v = VS.95)的.aspx#defining_the_visual_structure_and_visual_behavior_of_a_control_in_a_controltemplate)。 – Andrew