有没有人有一个如何使用Microsoft.Expression.Interactivity dll在Silverlight按钮模板中使用触发器的功能示例?
我想通过触发动画来响应样式中定义的Button模板中的click事件。
答案 0 :(得分:2)
您想使用触发EventTrigger
GoToStateAction
<Button x:Name="button" Height="53" HorizontalAlignment="Left" Margin="173,124,0,0" VerticalAlignment="Top" Width="147" Content="Button">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ic:GoToStateAction TargetName="checkBox" StateName="Checked"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<CheckBox x:Name="checkBox" Height="24" HorizontalAlignment="Left" Margin="173,206,0,0" VerticalAlignment="Top" Width="147" Content="CheckBox"/>
要在Blend中执行此操作,您可以将GoToStateAction
拖到按钮上,然后将TargetName属性设置为目标UIElement,并将StateName属性设置为所需的状态。
答案 1 :(得分:0)
您可以随时使用VisualStateManager并通过处理Button的click事件更改为“Click”状态。
void myButton_Click(object sender, RoutedEventArgs)
{
VisualStateManager.GoToState(this, "Click", true);
}
您还需要在XAML代码中定义样式和状态。
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="StateGroup">
<VisualState x:Name="ActiveLink">
<Storyboard>
//animations go here
...
另外,请记住Button对象有一堆预定义状态,如Disabled,Pressed(Click?),MouseOver和Normal。
答案 2 :(得分:0)
看起来当时不可能。