当StackPanel的内容发生变化时,如何触发触发器?

时间:2009-05-28 14:01:45

标签: wpf xaml triggers

以下代码使StackPanel的内容在加载时淡入(StackPanel.Loaded)。

如果StackPanel的内容发生变化,我必须更改以使其淡入淡出,例如,每次StackPanel中的消息发生变化时我都希望它再次淡入?

<Style x:Key="MessageStyle" TargetType="StackPanel">
    <Style.Triggers>
        <DataTrigger Binding="{Binding SaveStatus}" Value="Failed">
            <Setter Property="StackPanel.Background" Value="Red"/>
        </DataTrigger>
        <EventTrigger RoutedEvent="StackPanel.Loaded">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation
            Storyboard.TargetProperty="(StackPanel.Opacity)"
            From="0.0" To="1.0" Duration="0:0:5"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Style.Triggers>
</Style>

1 个答案:

答案 0 :(得分:0)

在设置附件后,您应该可以使用StackPanel.SourceUpdated / StackPanel.TargetUpdated事件执行您要查找的内容 在绑定StackPanel内容的绑定上,NotifyOnSourceUpdated / NotifyOnTargetUpdated属性为True。