我正在使用Modern UI,并且我有一个包含 Gridview 的 ListView 。当我将鼠标悬停在一行上或选择一行时,该行会应用背景颜色。我怎样才能删除这个样式?
<ListView ... >
    <ListView.Resources>
        <SolidColorBrush x:Key="ItemBackgroundHover" Color="Transparent" />
        <Style TargetType="ListViewItem">
            <Style.Triggers>
                <Trigger Property="Validation.HasError" Value="True">
                    <Setter Property="Background" Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Action">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                    ...

在您的 中ListView.Resources,覆盖ItemBackgroundHover画笔资源:
<SolidColorBrush x:Key="ItemBackgroundHover" Color="Transparent" />
ItemBackgroundSelected如果您不希望突出显示所选项目,请执行相同的操作。
如果您支持 Modern Light 主题,您可能还需要覆盖前景画笔。您可以在此处看到应用的画笔。
ListViewItem如果您用自己的样式替换 Modern UI 的样式,这将不起作用,但您可以以他们的样式为基础,并且它应该可以工作:
<Style TargetType="ListViewItem"
       BasedOn="{StaticResource {x:Type ListViewItem}}">
另外,根据您的屏幕截图,您可能不需要使用 a ListView,因为您显然不关心选择项目。您可以使用一个简单的ItemsControl.
要删除按钮镶边,您可以创建如下样式:
<Style x:Key="GlyphButton" TargetType="Button">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="Button">
        <Border>
          <ContentPresenter x:Name="ContentSite" />
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsPressed" Value="True">
            <Setter TargetName="ContentSite"
                    Property="Margin"
                    Value="1,1,-1,-1" />
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>
| 归档时间: | 
 | 
| 查看次数: | 5875 次 | 
| 最近记录: |