【问题标题】:WPF Source Name property cannot be set within Style. Triggers section Error不能在样式中设置 WPF 源名称属性。触发器部分错误
【发布时间】:2023-01-18 23:42:49
【问题描述】:

我收到以下详细信息的错误:

不能在样式中设置源名称属性。触发器部分

        <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>

单击按钮时,我想使用颜色动画标签更改矩形填充颜色。

【问题讨论】:

  • 正如错误消息所说,您不应该声明这样的事情。样式通常不应引用特定的“外部”元素。走标准路线,编写一个 Button Click 事件处理程序,在目标元素上启动动画。

标签: wpf datagrid wpf-controls wpf-animation


【解决方案1】:

就像它说的那样,您不能以这种方式使用源名称。

您可以改用数据触发器。通过按钮的单击命令在视图模型中设置一个 bool 属性。

然后使用绑定该 bool 属性和比较值的数据触发器启动您的故事板。

您可能可以轻松地使用 Google datatrigger 和 storyboard,但这里有一个包含示例的问题。

WPF Data Triggers and Story Boards

顺便提一句。

路由事件很少是非常有用的 IME。绑定 icommand 更实用。通常。

【讨论】:

    猜你喜欢
    • 2023-01-05
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 2012-05-28
    • 2011-10-30
    相关资源
    最近更新 更多