1

背景ブラシをRibbonButton使用する要素があります。StaticResource

今、このボタンの背景色にアニメーションを適用しようとしていますが、同じStaticResourceものを使用するすべての要素の背景色もアニメーション化されます!!!

このアニメーションを にのみ適用する方法はRibbonButton?

<Ribbon>
    <RibbonTab Header="Ribbon Tab 1">
        <RibbonGroup Header="Ribbon Group 1" Background="{StaticResource BackgroundBrush}">
            <RibbonButton x:Name="RibbonButton1" Label="Ribbon Button 1"
                          VerticalAlignment="Bottom" 
                          Style="{DynamicResource RibbonButton1_RibbonButtonStyle}"
                          Background="{StaticResource BackgroundBrush}">
                <RibbonButton.Resources>
                    <Style x:Key="RibbonButton1_RibbonButtonStyle" 
                           TargetType="RibbonButton">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding SomethingChanged}" Value="true">
                                <DataTrigger.EnterActions>
                                    <BeginStoryboard>
                                        <Storyboard>
                                            <ColorAnimation Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" 
                                                            Duration="0:0:0.1" To="Gold" />
                                        </Storyboard>
                                    </BeginStoryboard>
                                </DataTrigger.EnterActions>
                                <DataTrigger.ExitActions>
                                    <BeginStoryboard>
                                        <Storyboard FillBehavior="Stop">
                                            <ColorAnimation Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" 
                                                            Duration="0:0:0.1" To="{StaticResource BackgroundColor}" />
                                        </Storyboard>
                                    </BeginStoryboard>
                                </DataTrigger.ExitActions>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </RibbonButton.Resources>
            </RibbonButton>
        </RibbonGroup>
        ....
    </RibbonTab>
</Ribbon>
4

1 に答える 1

1

したがって、要素が を使用するStaticResource場合、そのリソースの同じインスタンスが、それを使用するすべての要素間で共有されるようです。

x:Shared="False"解決策として、私は自分のマークアップ属性を使用しましたが、StaticResourceうまくいきました。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Color x:Key="BackgroundColor" A="255" R="250" G="250" B="250" />

    <SolidColorBrush x:Key="BackgroundBrush" x:Shared="False" Color="{StaticResource BackgroundColor}" />
</ResourceDictionary>
于 2014-08-21T08:44:48.307 に答える