Комбинация WPF DataTrigger и EventTrigger не работает

У меня есть небольшой вопрос о моем коде:

<Style TargetType="{x:Type Grid}">
    <Setter Property="Visibility" Value="Collapsed"/>
    <Style.Triggers>
        <DataTrigger Binding="{Binding Status.IsObjectSaving}" Value="True">
            <Setter Property="Visibility" Value="Visible"/>
        </DataTrigger>
        <Trigger Property="Visibility" Value="Visible">
            <Trigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation
                            Storyboard.TargetProperty   = "Opacity"
                            From                        ="1"
                            To                          = "0"
                            BeginTime                   = "0:0:0"
                            Duration                    = "0:0:2" />
                        <ObjectAnimationUsingKeyFrames
                            Storyboard.TargetProperty   = "Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:2"
                            Value="{x:Static Visibility.Collapsed}" />
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.EnterActions>
        </Trigger>
    </Style.Triggers>
</Style>

Когда мой объект будет сохранен, сетка должна быть открыта, чтобы показать некоторую информацию. Когда я запускаю программу в первый раз, она работает, а во второй раз не работает. Так что я надеюсь, что вы можете мне помочь.

Спасибо, Даниэль.

p.s. извините за мой ужасный английский!


Спасибо за ответы! Я попытался установить значения с помощью следующего кода:

<DataTrigger Binding="{Binding Status.IsObjectSaving}" Value="True">
    <DataTrigger.EnterActions>
        <BeginStoryboard>
            <Storyboard>
                <DoubleAnimation
                    Storyboard.TargetProperty   = "Opacity"
                    From                        = "0"
                    To                          = "1"
                    BeginTime                   = "0:0:0"
                    Duration                    = "0:0:2" />
                <ObjectAnimationUsingKeyFrames
                    Storyboard.TargetProperty   = "Visibility">
                    <DiscreteObjectKeyFrame KeyTime="0:0:2"
                        Value="{x:Static Visibility.Visible}" />
                </ObjectAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </DataTrigger.EnterActions>
    <DataTrigger.ExitActions>
        <BeginStoryboard>
            <Storyboard>
                <DoubleAnimation
                    Storyboard.TargetProperty   = "Opacity"
                    From                        = "1"
                    To                          = "0"
                    BeginTime                   = "0:0:2"
                    Duration                    = "0:0:2" />
                <ObjectAnimationUsingKeyFrames
                    Storyboard.TargetProperty   = "Visibility">
                    <DiscreteObjectKeyFrame KeyTime="0:0:2"
                        Value="{x:Static Visibility.Collapsed}" />
                </ObjectAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </DataTrigger.ExitActions>
</DataTrigger>

Но это не работает. Итак, вы можете помочь мне правильно изменить код?

Благодарность

Даниэль


person Daniel    schedule 11.07.2012    source источник


Ответы (1)


Анимации изменяют значения с более высоким приоритетом, как только видимость изменится таким образом, триггер не сможет ее изменить. Вы можете заменить сеттер анимацией (действия входа и выхода), чтобы они имели одинаковый приоритет.

person H.B.    schedule 11.07.2012