【问题标题】:Start a WPF animation when a property on another control has changed当另一个控件上的属性发生更改时启动 WPF 动画
【发布时间】:2016-03-06 17:53:13
【问题描述】:

我有一个 WPF 控件,我想根据包含 UserControl(名为“UserControl”)上定义的属性 IsInteracting 的值来制作动画。我在 UserControl 中定义了以下样式,在 UserControl 中也定义了针对 Grid 的动画。

<UserControl.Resources>
    <Style TargetType="Grid">
        <Setter Property="Opacity" Value="0" />
        <Setter Property="Height" Value=""></Setter>
        <Style.Triggers>
            <Trigger Property="IsInteracting" Value="True" SourceName="UserControl">
                <Trigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimationUsingKeyFrames
                                Storyboard.Target="{Binding ElementName=ControlGrid}"
                                Storyboard.TargetProperty="Opacity"
                                >
                                <EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="1"/>
                                <EasingDoubleKeyFrame KeyTime="0:0:0.8" Value="1"/>
                                <EasingDoubleKeyFrame KeyTime="0:0:1.3" Value="0"/>
                            </DoubleAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </Trigger.EnterActions>
            </Trigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>

这不起作用,因为无法识别名称“UserControl”。我认为存在范围问题会阻止引用样式之外的元素?

我该如何做我想做的事?

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    试试这个

    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=IsInteracting}" Value="True">
        <DataTrigger.EnterActions>                            
        </DataTrigger.EnterActions>
    </DataTrigger>
    

    【讨论】:

      【解决方案2】:

      我认为样式不正确的地方是使用另一个(外部)控件触发器来启动动画。建议你看看下一个解决方案here,有类似的问题。

      如果您遇到代码问题,我很乐意为您提供帮助。 问候。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-28
        • 2014-08-17
        • 2020-02-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多