如何解决UWP-CPP/Winrt 设置 ListViewItem 悬停/选中时的角半径
我打算使用 ListView 显示对象列表。根据设计,ListViewItem 周围的矩形的角应为圆角。尝试了多种方法来实现相同但找不到解决方案。
<ListView
x:Name="ObjectList"
ItemsSource="{x:Bind ObjectViewModel.Objects}"
SelectionChanged="ListViewButtonClick"
MaxWidth ="{StaticResource ColumnMaximumWidth}"
VerticalAlignment = "Center"
HorizontalContentAlignment = "Stretch"
ScrollViewer.HorizontalScrollBarVisibility ="Disabled"
SelectionMode ="Single" />
<ListView.Resources>
<SolidColorBrush x:Key="ListViewItemBackgroundSelected" Color="Green" />
<SolidColorBrush x:Key="ListViewItemBackgroundSelectedPointerOver" Color="Green" />
</ListView.Resources>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Margin" Value="0,30" />
</Style>
</ListView.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="local:ObjectModel">
<Border
BorderBrush="Red"
BorderThickness="3"
CornerRadius="5">
<Grid MinHeight="66" CornerRadius="8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<FontIcon
FontSize="17"
Glyph=""
Style="{StaticResource FontIconStyle1}" />
<TextBlock
Grid.Column="1"
Style="{StaticResource AddBluetoothLabelTextStyle}"
Text="{x:Bind ObjectName,Mode=OneWay}" />
</Grid>
</Border>
</ItemsControl.ItemTemplate>
</ListView>
如图所示,选中/悬停的项目的角没有圆角。你能帮助我如何做到这一点。 TIA
解决方法
您需要更改 VisualState
以将 CornerRadius
的 ListViewItem
设置为 ListViewItem
的样式。
请检查以下步骤:
- 打开
generic.xaml
文件,找到一个Style
,其TargetType
为ListViewItem
,Key
为ListViewItemRevealStyle
。将样式复制到您的Page.Resources
中。 - 删除样式的
x:Key
属性,使该样式可以在当前页面的所有ListViewItem
中使用。 - 找到一个名为
VisualState
的Selected
,添加以下代码:
<VisualState x:Name="Selected">
<VisualState.Setters>
<Setter Target="Root.CornerRadius" Value="10" />
</VisualState.Setters>
</VisualState>
- 查找名称为
VisualState
、PointerOver
、PointerOverSelected
、PointerOverPressed
的{{1}},分别添加如下代码:
PointerOverPressed
- 删除与
<Setter Target="Root.CornerRadius" Value="10" /> <!--Add this code-->
样式冲突的ListView.ItemContainerStyle
语句。
注意,最好先按照上面的步骤在ListViewItem’s
的样式中设置圆角半径,然后再添加其他样式或设置,这样可以保证ListViewItem
样式的设置工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。