我使用ListView
来显示项目列表。但是当我使用ItemContainerStyle
设置项目的字体时,现在选择了一个项目,ListView
突出显示(左边的蓝线)不再可见。这里是关于这个screenshot的比较。问题是在安装Microsoft.UI.Xaml
package时出现的,因为这里ListView
的设计已经改变了。有没有办法在不删除ItemContainerStyle
或Microsoft.UI.Xaml
包的情况下修复这个问题?
MainPage.xaml
<Page
x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<ListView HorizontalAlignment="Left">
<ListViewItem Content="ABCD"/>
<ListViewItem Content="abcd"/>
<ListViewItem Content="1234"/>
</ListView>
<ListView HorizontalAlignment="Right">
<ListViewItem Content="ABCD"/>
<ListViewItem Content="abcd"/>
<ListViewItem Content="1234"/>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="FontSize" Value="16"></Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
</Page>
App.xaml
<Application
x:Class="App1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1">
<Application.Resources>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
</Application.Resources>
</Application>
1条答案
按热度按时间8ljdwjyq1#
出现此行为的原因是,当您为列表视图设置新的
ItemContainerStyle
时,它将覆盖WinUI库中使用的默认项目样式。解决这个问题的方法是,你需要根据项目当前使用的样式为项目指定一个样式。我在WinUI GitHub中找到了
ListViewItem
的默认样式:ListViewItem_themeresources。因此,您只需要创建一个基于DefaultListViewItemStyle
的样式。您需要对代码进行一些修改,如下所示: