我有一个矩形,我想设置位置(x,y),当用户按下鼠标按钮向左1个像素,向下1个像素时,我得到一个简单的反馈。
<Canvas x:Name="canvas">
<Canvas.Resources>
<Style x:Key="myStyle" TargetType="Rectangle">
<Setter Property="Fill" Value="AliceBlue" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Fill" Value="Green" />
</Trigger>
<EventTrigger RoutedEvent="Button.Click" >
<BeginStoryboard>
<Storyboard TargetProperty="Canvas.Left">
<Int16Animation From="10" To="100" Duration="0:0:0:1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Canvas.Resources>
<Rectangle x:Name="rect" Width="120" Height="120" Canvas.Left="10" Canvas.Top="10" Style="{StaticResource myStyle}" />
</Canvas>
使用我当前的解决方案,鼠标悬停在Trigger上。但是对于我的EventTriggers没有任何反应?
任何想法如何实现这一目标?
由于
答案 0 :(得分:1)
这里有一些问题。
Button.Click
事件。例如,使用MouseLeftButtonUp
代替。Canvas.Left
是附属财产。您必须在括号中写入属性名称。double
,因此应以DoubleAnimation
为动画。像这样编写EventTrigger:
<EventTrigger RoutedEvent="MouseLeftButtonUp" >
<BeginStoryboard>
<Storyboard TargetProperty="(Canvas.Left)">
<DoubleAnimation From="10" To="100" Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>