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

                </EventTrigger>
            </DockPanel.Triggers>
 </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>

ドックパネルにフェードアウト アニメーションを付けようとしています。

4

1 に答える 1

3

イベント トリガーを使用する代わりに、通常のトリガーを使用して のVisibilityプロパティの値を確認しますDockPanel

次のように、DockPanel でスタイルを作成してそれを行うことができます。

<DockPanel Name="MyPanel">
    <DockPanel.Style>
        <Style TargetType="DockPanel">
            <Style.Triggers>
                <Trigger Property="Visibility" Value="Visible">
                    <Trigger.EnterActions>
                        <BeginStoryboard>
                            <!-- Set storyboard to run when DockPanel is set visible here: -->

                        </BeginStoryboard>
                    </Trigger.EnterActions>
                    <Trigger.ExitActions>
                        <BeginStoryboard>
                            <!-- Set storyboard to run when DockPanel is no longer set visible here: -->

                        </BeginStoryboard>
                    </Trigger.ExitActions>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DockPanel.Style>
</DockPanel>
于 2012-11-25T21:50:10.070 に答える