我想在通用Windows平台应用中更改ListView
的默认样式。默认的ListView
项目悬停为浅灰色,点击为浅蓝色,所选项目为深蓝色。
我尝试搜索并尝试了几乎所有代码,但没有成功。这是我对ListView的xaml:
<Page.Resources>
<DataTemplate x:Key="MasterListViewItemTemplate" x:DataType="model:Thread">
<Grid Margin="0,11,0,13">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="35"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Ellipse Grid.Column="0" Width="35" Height="35" VerticalAlignment="Top">
<Ellipse.Fill>
<ImageBrush ImageSource="{x:Bind Photo}"/>
</Ellipse.Fill>
</Ellipse>
<TextBlock Grid.Column="1" Text="{x:Bind Name}"/>
</Grid>
</DataTemplate>
</Page.Resources>
<ListView
x:Name="MasterListView"
ItemContainerTransitions="{x:Null}"
ItemTemplate="{StaticResource MasterListViewItemTemplate}"
IsItemClickEnabled="True"
ItemClick="MasterListView_ItemClick">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
答案 0 :(得分:1)
所有这些都是在ListViewItem样式中定义的。您可以覆盖它并轻松更改所需的值。我不会复制粘贴完整的样式,因为它很大并且you can find it here。
你也可以只覆盖几种打扰你的颜色。在同一个链接中,您会发现ListViewItemPresenter
的属性如SelectedPressedBackground
设置为ThemeResources。
SelectedPressedBackground="{ThemeResource SystemControlHighlightListAccentHighBrush}"
这意味着覆盖那些可能是您完成所需的最小值(Overried SystemControlHighlightListAccentHighBrush等),但请记住,这样做会覆盖完整应用程序的那些资源,这可能不是您所期望的