1

グリッドの背景色をアニメーション化して変更しようとしていますが、イベントが発生すると、それを機能させることができず、すぐに(データトリガーを介して)色を変更することができますが、それにアニメーションを導入すると、それを機能させることができません(アニメーションが有効になっていないようです)。

これは、私が使用している現在のXAMLです(さまざまなバリエーションを試しましたが、アニメーション化することはできません)。

<DataTrigger Binding="{Binding ElementName=me, Path=Viewed}" Value="False">
    <Setter Property="Background" Value="LightYellow" />
    <DataTrigger.ExitActions>
        <BeginStoryboard>
            <Storyboard>
                <ColorAnimation Duration="00:00:02" To="White" Storyboard.TargetProperty="(Grid.Background).(SolidColorBrush.Color)"/>
            </Storyboard>
        </BeginStoryboard>
    </DataTrigger.ExitActions>
</DataTrigger>
<!--
<DataTrigger Binding="{Binding ElementName=me, Path=Viewed}" Value="True">
    <Setter Property="Background" Value="White" />
</DataTrigger>
-->

Viewedは、コントロールの依存関係プロパティ(bool)です。正しい方向へのヒントをいただければ幸いです。また、boolがtrueに切り替わったときに発生する発生イベントのEventTriggerとして設定してみました。

4

2 に答える 2

1

クレメンスの助けのおかげで、私が何をする必要があるかを理解しました:

    <SolidColorBrush x:Key="GridColourBrush" Color="LightYellow" />
        <Style x:Key="GridStyle" TargetType="Grid">
            <Setter Property="Background" Value="White" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=me, Path=Viewed}" Value="False">
                    <Setter Property="Background" Value="{StaticResource GridColourBrush}" />
                    <DataTrigger.ExitActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Duration="00:00:02" To="White" Storyboard.TargetProperty="(Grid.Background).(SolidColorBrush.Color)"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.ExitActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>
        <!-- snipped stuff -->
        <Grid MinWidth="525" x:Name="ContainerGrid" Style="{StaticResource GridStyle}" Background="{StaticResource GridColourBrush}" />

したがって、デフォルトで背景をフラットホワイトに設定し、DPブール値がfalseの場合は、背景を静的な単色ブラシに変更します。これは、終了アクションを介してアニメーション化できます。

于 2012-08-07T11:27:42.713 に答える
0

私が意味したのは、その代わりに単にそれでした

<Grid Background="LightYellow">
</Grid>

あなたは書く必要があります

<Grid>
    <Grid.Background>
        <SolidColorBrush Color="LightYellow" />
    </Grid.Background>
</Grid>

追加のリソースは必要ありません。

于 2012-08-07T11:33:15.507 に答える