4

私は次のXAMLを持っています:

<UserControl.Resources>
    <SolidColorBrush x:Key="Brush"></SolidColorBrush>

    <Style TargetType="{x:Type StackPanel}" x:Key="ColourChangingStyle">
        <Setter Property="Background" Value="{StaticResource Brush}" />

        <Style.Triggers>
            <DataTrigger Binding="{Binding Path='Stage'}" Value="1">
                <DataTrigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation Storyboard.Target="{StaticResource Brush}"
                              Storyboard.TargetProperty="Color" From="{StaticResource FirstColor}" To="{StaticResource FinishedColor}" Duration="0:0:10" BeginTime="0:0:0"/>
                        </Storyboard>
                    </BeginStoryboard>
                </DataTrigger.EnterActions>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>

<StackPanel x:Name="InfoPanel" Orientation="Vertical"  Margin="1,2" Style="{DynamicResource ColourChangingStyle}">
 ...
</StackPanel>

そして、私は同じエラーを受け取り続けます:

不変オブジェクトインスタンスで「Color」をアニメーション化できません

これがブラシです。私は問題を調べましたが、それはブラシをバインドしてStackPanel後で変更できないようにすることと関係があると思います。

これを回避する方法はありますか?私は文字通り、同じ効果のための他のオプションが色をハードコーディングせず、コードですべてのイベントを実行することなしに何であるかについての手がかりがありません。

4

1 に答える 1

6

BrushResourcesをアニメートできないようですStoryboard.Target。ただし、(これは既に行っていBackgroundますStyle) を設定して、このプロパティをアニメーション化することができます。

<ColorAnimation Storyboard.TargetProperty="Background.Color"
                From="{StaticResource FirstColor}"
                To="{StaticResource FinishedColor}" 
                Duration="0:0:10" BeginTime="0:0:0" />
于 2013-01-17T18:02:57.000 に答える