4

ListViewの選択したアイテムの色をアニメーション化しようとしています。

この「プロパティ」には、次のコードからアクセスできます。

<Style.Resources>
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Blue">
</Style.Resources>

この「プロパティ」の色をアニメーション化するにはどうすればよいですか?

 <Storyboard x:Key="MyStoryboard">
     <ColorAnimation Storyboard.TargetName="MyList" 
                     Storyboard.TargetProperty="{x:Static SystemColors.HighlightBrushKey}"    // compilation error
                     To="Gray" Duration="0:0:1" />
 </Storyboard>

どうもありがとう!

4

1 に答える 1

2

これがSampleStyleです;-)

これは、IsSelected-PropertyのトリガーEnter / ExitアクションでColorAnimationを使用してStoyboardを追加できるListViewItemのテンプレートを使用します!

<Style TargetType="{x:Type ListViewItem}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ListViewItem}">
                <Border x:Name="Bd" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                    <Grid>
                        <GridViewRowPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
                        <ContentPresenter x:Name="contentPresenter" Visibility="Collapsed" />
                    </Grid>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="GridView.ColumnCollection" Value="{x:Null}">
                        <Setter TargetName="contentPresenter" Property="Visibility" Value="Visible"/>
                    </Trigger>
                    <Trigger Property="IsSelected" Value="true">
                        <Trigger.EnterActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <ColorAnimation Storyboard.TargetName="Bd" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
                                                    From="Red" To="Blue" Duration="0:0:1" />
                                </Storyboard>
                            </BeginStoryboard>
                        </Trigger.EnterActions>
                        <Trigger.ExitActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <ColorAnimation Storyboard.TargetName="Bd" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
                                                    From="Blue" To="Transparent" Duration="0:0:1" />
                                </Storyboard>
                            </BeginStoryboard>
                        </Trigger.ExitActions>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
于 2013-03-27T14:37:16.193 に答える