我使用的是 Windows 7,当前项目选择(默认情况下)是用矢车菊蓝色绘制背景。是否有可能摆脱它并用鼠标悬停的 ListView 项目上的 1px 轮廓/边框替换它?
我基本上想在任何 ListView 项上绘制一个 1 像素的轮廓/边框, ListView 项和轮廓/边框之间的间距为 1 像素。
我正在为每个项目使用带有图像的 WrapPanel。
最佳答案
使用 ItemContainerStyle 覆盖默认背景行为,并在您的样式中使用 IsMouseOver 上的触发器来显示您的轮廓(例如,通过为 BorderThickness 使用 Setter)。
编辑:粗略示例(未测试):
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Background="White" BorderThickness="5" Name="Bd">
<Border.Style>
<Style TargetType="Border">
<Setter Property="BorderBrush" Value="White" />
</Style>
</Border.Style>
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Bd" Property="BorderBrush" Value="HotPink" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
关于c# - 具有 WPF ListView 的 MouseOver 大纲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2573946/