我收到以下详细信息的错误:
无法在Style.triggers节中设置“源名称”属性
<Rectangle Margin="121,163,0,248" HorizontalAlignment="Left" Width="33" Height="34">
<Rectangle.Style>
<Style TargetType="Rectangle">
<Setter Property="Fill" Value="Blue"></Setter>
<Style.Triggers>
<EventTrigger SourceName="myButton" RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Fill.Color" To="Orange"
Duration="0:0:1" AutoReverse="True" RepeatBehavior="Forever"
BeginTime="0:0:0">
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
我想改变矩形填充颜色与彩色动画标签时,点击按钮。
1条答案
按热度按时间50pmv0ei1#
就像它说的,你不能在这样的风格中使用源代码名称。
你也可以使用数据触发器,比如在视图模型中设置一个bool属性,通过点击按钮的命令。
然后从绑定bool属性和比较值数据触发器开始故事板。
你可以很容易地谷歌数据触发器和故事板,但这里有一个这样的问题包括一个例子。
WPF Data Triggers and Story Boards
顺便说一句。
路由事件很少是非常有用的输入法。绑定icommand是更实用的方式。通常。
编辑:
这是一个使用togglebutton的简单示例。由于这种方法使用绑定,它可以通过名称引用控件。绑定在运行时解决。
将网格粘贴到主窗口中,旋转它。当你点击切换按钮时,它会设置ischecked为真,这样矩形动画就会变成橙色,然后又变回蓝色。当你再次点击该按钮时,ischecked变为假,动画就会停止。
你可以在一个按钮处理程序中编写代码来设置一个在datacontext中的绑定属性,并将datatrigger绑定到该绑定属性,这就是链接中的标记对IsBusy所做的。