在listView中保留选定的项目

时间:2015-02-25 08:31:57

标签: c# listview selecteditem listviewitem

我的应用程序中有一个listView,当我点击项目时,它看起来像这样:

enter image description here

XAML(动态生成的项目):

    <Page.Resources>
            <DataTemplate x:Key="IconTextDataTemplate">
                <StackPanel Orientation="Horizontal" Width="220" Height="60" Background="#FF729FD4">
                    <Border Background="#66727272" Width="40" Height="40" Margin="10">
                        <Image Source="/SampleImage.png" Height="32" Width="32" Stretch="UniformToFill"/>
                    </Border>
                    <StackPanel Orientation="Vertical" VerticalAlignment="Center">
                        <TextBlock Text="{Binding Name}" Margin="10,0,0,0" Width="170" Height="20" TextTrimming="WordEllipsis"/>
                        <TextBlock Text="{Binding Description}" Margin="10,0,0,0" Width="170" Height="20" TextTrimming="WordEllipsis"/>
                    </StackPanel>
                </StackPanel>
            </DataTemplate>
</Page.Resources>
    <ListView x:Name="Name" ItemTemplate="{StaticResource IconTextDataTemplate}"   Grid.Row="6" Margin="40,20,40,10" HorizontalAlignment="Stretch" Foreground="White" SelectionChanged="DoSomething">
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <ItemsWrapGrid MaximumRowsOrColumns="4"/>
                            </ItemsPanelTemplate>
                        </ListView.ItemsPanel>
                    </ListView>

我希望在点击后,紫色边框将被删除。 (选择标记) 我该怎么做?感谢

1 个答案:

答案 0 :(得分:0)

您需要覆盖ListViewItem的样式,您可以找到它here

您正在寻找SelectionStates

<VisualStateGroup x:Name="SelectionStates">
                        <VisualState x:Name="Unselecting">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="HintGlyphBorder"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                            </Storyboard>
                        </VisualState>
                        <VisualState x:Name="Unselected">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="HintGlyphBorder"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                            </Storyboard>
                        </VisualState>
                        <VisualState x:Name="UnselectedPointerOver">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="HintGlyphBorder"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="contentPresenter"
                                                               Storyboard.TargetProperty="Foreground">
                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListViewItemSelectedForegroundThemeBrush}" />
                                </ObjectAnimationUsingKeyFrames>
                            </Storyboard>
                        </VisualState>
                        <VisualState x:Name="UnselectedSwiping">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="SelectingGlyph"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="0.5" />
                                <DoubleAnimation Storyboard.TargetName="HintGlyphBorder"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                            </Storyboard>
                        </VisualState>
                        <VisualState x:Name="Selecting">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="SelectionBackground"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <DoubleAnimation Storyboard.TargetName="SelectedBorder"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <DoubleAnimation Storyboard.TargetName="SelectingGlyph"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <DoubleAnimation Storyboard.TargetName="HintGlyphBorder"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="contentPresenter"
                                                               Storyboard.TargetProperty="Foreground">
                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListViewItemSelectedForegroundThemeBrush}" />
                                </ObjectAnimationUsingKeyFrames>
                            </Storyboard>
                        </VisualState>
                        <VisualState x:Name="Selected">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="SelectionBackground"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <DoubleAnimation Storyboard.TargetName="SelectedBorder"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <DoubleAnimation Storyboard.TargetName="SelectedCheckMark"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="contentPresenter"
                                                               Storyboard.TargetProperty="Foreground">
                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListViewItemSelectedForegroundThemeBrush}" />
                                </ObjectAnimationUsingKeyFrames>
                            </Storyboard>
                        </VisualState>
                        <VisualState x:Name="SelectedSwiping">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="SelectionBackground"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <DoubleAnimation Storyboard.TargetName="SelectedBorder"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <DoubleAnimation Storyboard.TargetName="SelectedCheckMark"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="contentPresenter"
                                                               Storyboard.TargetProperty="Foreground">
                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListViewItemSelectedForegroundThemeBrush}" />
                                </ObjectAnimationUsingKeyFrames>
                            </Storyboard>
                        </VisualState>
                        <VisualState x:Name="SelectedUnfocused">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="SelectionBackground"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <DoubleAnimation Storyboard.TargetName="SelectedBorder"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <DoubleAnimation Storyboard.TargetName="SelectedCheckMark"
                                                 Storyboard.TargetProperty="Opacity"
                                                 Duration="0"
                                                 To="1" />
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="contentPresenter"
                                                               Storyboard.TargetProperty="Foreground">
                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ListViewItemSelectedForegroundThemeBrush}" />
                                </ObjectAnimationUsingKeyFrames>
                            </Storyboard>
                        </VisualState>
                    </VisualStateGroup>

尝试更改它,你会找到答案