none
在ItemContainer样式中,设置选中样式的时候如何设置变量 RRS feed

  • 问题

  • 这个GridViewItem绑定一系列的图片,例如:img01.png,img02.png,img03.png.....

    再选中后图片要变成img01_sel.png,img02_sel.png,img03_sel.png...

    现在用下面的样式,可以设置选中后的固定图片效果,但是如果实现不同Item选中后显示不同的图片效果呢?

    样式如下

    <Style x:Key="DetailItemContainer" TargetType="GridViewItem">
            <Setter Property="FontFamily" Value="{StaticResource ContentControlThemeFontFamily}"/>
            <Setter Property="FontSize" Value="{StaticResource ControlContentThemeFontSize}"/>
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="TabNavigation" Value="Local"/>
            <Setter Property="IsHoldingEnabled" Value="True"/>
            <Setter Property="Margin" Value="0,0,2,2"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="GridViewItem">
                        <Border x:Name="OuterContainer">
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Normal"/>                                
                                    <VisualState x:Name="PointerOver">
                                        <Storyboard>
                                            <!--<ColorAnimation Storyboard.TargetName="isGridName" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" To="Red" />-->
                                            <!--<ObjectAnimationUsingKeyFrames Storyboard.TargetName="GridItemBackgroundImage" Storyboard.TargetProperty="Source">
                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{变量}"/>
                                            </ObjectAnimationUsingKeyFrames>-->
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="SelectionStates">
                                    <VisualState x:Name="Unselected">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GridItemBackgroundImage" Storyboard.TargetProperty="Source">
                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{变量}"/>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Selected">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GridItemBackgroundImage" Storyboard.TargetProperty="Source">
                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{变量}"/>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="SelectedUnfocused">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GridItemBackgroundImage" Storyboard.TargetProperty="Source">
                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{变量}"/>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>

                            <Grid HorizontalAlignment="Left" Width="90" Height="90" Margin="5,5,5,0" VerticalAlignment="Center">
                                <Border VerticalAlignment="Top" x:Name="gridBorder">
                                    <Image x:Name="GridItemBackgroundImage" Source="ms-appx:///Assets/1xTransparent.png" Stretch="UniformToFill" AutomationProperties.Name="{Binding Name}" Width="47"/>
                                </Border>
                                <StackPanel VerticalAlignment="Bottom" HorizontalAlignment="Center">
                                    <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Name}" Width="47" Height="46" ToolTipService.ToolTip="{Binding Name}"/>
                                    <TextBlock Text="{Binding Name}" Foreground="#8e8e8e" FontSize="20" Style="{StaticResource TitleTextStyle}" Height="25" Margin="0"/>
                                </StackPanel>
                            </Grid>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

    2013年4月13日 9:21

答案