淡出DockPanel上的动画

时间:2012-11-25 21:18:36

标签: wpf fadeout

<DockPanel Name="MyPanel" IsVisibleChanged="MyPanel_IsVisibleChanged">
            <DockPanel.Triggers>
                <EventTrigger RoutedEvent="IsVisibleChanged"> // error here

                </EventTrigger>
            </DockPanel.Triggers>
 </DockPanel>

上面是我的dockpanel xmal代码。因为IsVisibleChanged不是RoutedEvent,所以我无法在EventTrigger中添加这段代码:

<Storyboard x:Key="hideMe">
        <DoubleAnimation Storyboard.TargetProperty="Opacity" Duration="0:0:2" To="0.0"/>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility">
            <DiscreteObjectKeyFrame KeyTime="0:0:2" Value="{x:Static Visibility.Hidden}"/>
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>
    <Storyboard x:Key="showMe">
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility">
            <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}"/>
        </ObjectAnimationUsingKeyFrames>
        <DoubleAnimation Storyboard.TargetProperty="Opacity" Duration="0:0:5" To="0.75"/>
    </Storyboard>

我尝试将淡出动画添加到我的dockpanel。

1 个答案:

答案 0 :(得分:3)

我会使用普通触发器来检查Visibility的{​​{1}}属性的值,而不是使用事件触发器。

您可以在DockPanel上创建一个样式来执行此操作,如下所示:

DockPanel