如何在UWP中更改ListView中的默认选定焦点背景颜色?

我正在开发Windows通用应用程序。 我想改变我的列表视图选定的背景颜色。系统默认select的背景颜色是蓝色,我需要一个灰色的颜色。我用数据模板绑定数据到列表视图。

DataTemplate中

<Page.Resources> <DataTemplate x:Name="datatemplate1" x:DataType="data:storedata"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> < </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" Text="{x:Bind name}" x:Phase="1" x:Name="product_name_layout" Style="{ThemeResource BaseTextBlockStyle}" TextWrapping="NoWrap" Foreground="#FF080808" Margin="2,3,0,0" FontSize="12" /> <TextBlock x:Name="status_title_layout" FontSize="12" Foreground="Gray" Style="{ThemeResource BaseTextBlockStyle}" Visibility="Visible" SelectionHighlightColor="#FFB1B4BE" Margin="2,5,0,0" Text="SKU:" Grid.Column="1" Grid.Row="1"></TextBlock> <TextBlock Grid.Column="1" Grid.Row="0" Text="{x:Bind status}" x:Phase="2" Foreground="Gray" FontSize="12" Style="{ThemeResource BaseTextBlockStyle}" Margin="32,5,0,0" x:Name="sku_layout"/> </Grid> </DataTemplate> </Page.Resources> 

列表显示:

 <ListView x:Name="MasterListView" UseLayoutRounding="False" ScrollViewer.VerticalScrollMode="Enabled" BorderBrush="#FFA70EAA" SelectionChanged="OnSelectionChanged" IsItemClickEnabled="True" ShowsScrollingPlaceholders="False" ItemTemplate="{StaticResource datatemplate1 }" ItemClick="OnItemClick" Grid.Column="0" Grid.Row="1" > <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> </Style> </ListView.ItemContainerStyle> </ListView> 

我也把一些屏幕截图,让你可以很容易地理解。

图片

列表视图问题

添加到您的ListViewItem的样式这个模板:

 <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListViewItem"> <ListViewItemPresenter ContentTransitions="{TemplateBinding ContentTransitions}" SelectionCheckMarkVisualEnabled="True" CheckBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}" CheckBoxBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}" DragBackground="{ThemeResource ListViewItemDragBackgroundThemeBrush}" DragForeground="{ThemeResource ListViewItemDragForegroundThemeBrush}" FocusBorderBrush="{ThemeResource SystemControlForegroundAltHighBrush}" FocusSecondaryBorderBrush="{ThemeResource SystemControlForegroundBaseHighBrush}" PlaceholderBackground="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" PointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}" PointerOverForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}" SelectedBackground="{ThemeResource SystemControlHighlightListAccentLowBrush}" SelectedForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}" SelectedPointerOverBackground="{ThemeResource SystemControlHighlightListAccentMediumBrush}" PressedBackground="{ThemeResource SystemControlHighlightListMediumBrush}" SelectedPressedBackground="{ThemeResource SystemControlHighlightListAccentHighBrush}" DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}" DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}" ReorderHintOffset="{ThemeResource ListViewItemReorderHintThemeOffset}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" ContentMargin="{TemplateBinding Padding}" CheckMode="Inline"/> </ControlTemplate> </Setter.Value> </Setter> 

在这里,你可以删除或修改你想要的,看起来你想改变SelectedBackground颜色为DarkGrey。