抱歉,如果之前有人问过这个问题,但我在弹出的相关问题或谷歌上找不到我正在寻找的解决方案。
在我的应用程序中,我正在尝试重新创建 Words 新文档对话框,在项目左侧列出,在右侧列出下方带有文本的图标。在 Word 中,当您将鼠标悬停时,它具有橙色渐变,当您选择一个项目时,它具有较暗的渐变。我已经重新创建了大部分内容,除了在您选择一个项目后更改背景颜色。这是我用来创建它的代码:
<ListView Margin="236,34,17,144" Name="listView1" HorizontalContentAlignment="Stretch">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5" IsItemsHost="True" VerticalAlignment="Top" >
</UniformGrid>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate >
<StackPanel HorizontalAlignment="Center" Width="auto">
<Image Source="images/document32.png" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding}" HorizontalAlignment="Center" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}" >
<Style.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Foreground" Value="Yellow" />
<Setter Property="Background" Value="Orange" />
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Black" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="1,0">
<GradientStop Color="#d3e7ff" Offset="0.986"/>
<GradientStop Color="#b0d2fc" Offset="0.5"/>
<GradientStop Color="#8ec1ff" Offset="0.51"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
</ListView>
所以这创造了我想要的外观,鼠标悬停,当我在列表视图中选择一个项目时,它会将字体文本更改为黄色,但它拒绝将背景从默认的蓝色更改为橙色,理想情况下无论如何,这将是另一个渐变,而不是泛滥的颜色。谢谢你的帮助。