我是silverlight和wpf编程的新手
我刚刚在silverlight中创建了一个简单的故事板,增加了按钮的高度和宽度。
正如我所知,我编写了这段代码,以便每当我在按钮故事板上移动光标时就开始了。
这是用于silverlight的代码。
private void button_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
if(Storyboard1.GetCurrentState()!=ClockState.Active)
Storyboard1.Begin();
}
就我使用silverlight而言,在上述场景中一切都很好。
但现在我想在WPF中使用相同的功能。
但我遇到的问题是在WPF按钮单击事件处理程序中我无法访问Storyboard1对象。
请帮我在事件处理程序中访问storyboard对象。
答案 0 :(得分:2)
在WPF中,您不需要代码来执行此类动画;它可以在XAML中完成。例如:
<Button>
<Button.Style>
<Style TargetType="Button">
<Setter Property="Width" Value="50" />
<Setter Property="Height" Value="20" />
<Style.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Width" To="100" />
<DoubleAnimation Storyboard.TargetProperty="Height" To="40" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Width" To="50" />
<DoubleAnimation Storyboard.TargetProperty="Height" To="20" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
实际上,由于它都是风格,因此您可以轻松地将此动画应用于多个按钮,而无需重复代码:
<Window.Resources>
<Style x:Key="myGrowingButton" TargetType="Button">
...
</Style>
</Window.Resources>
...
<Button Style="{StaticResource myGrowingButton}">Button1</Button>
<Button Style="{StaticResource myGrowingButton}">Button2</Button>
...