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