我设置了一个非常基本的测试来解决我在使用 Visual Studio 2012 并在 Windows 8.1 上运行的针对 .NET Framework 4 的 WPF 中遇到的颜色问题。
问题在于 IsSelected 和 IsMouseOver 触发器属性在屏幕上产生不正确的颜色,而 Snoop 显示正确的值。屏幕上显示的实际颜色更加“褪色”。也就是说,它们看起来比应有的要轻。一个显示为 #E5F3FB,另一个显示为 #CBE8F6,但我没有在 XAML 中使用这两种颜色。
屏幕截图:我不得不在这里做一些猴子生意,因为 Snoop 更改了所选项目的背景颜色。您在这里看到的是用户在没有运行 snoop 的情况下看到的内容。您可以看到 Snoop 指示较深的蓝色,这才是它应该的样子。
现在这是我的代码(仅保留在屏幕上生成四个项目所需的一小部分代码,如果有帮助,我很乐意发布)。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ColorTest"
x:Class="MainWindow" Name="MainWindow" WindowStartupLocation="CenterScreen" >
<Grid>
<ListView Name="GroupsListView"
BorderThickness="0" >
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Background" Value="#777777" />
<Setter Property="Foreground" Value="White" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Background" Value="#0072C6" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Background" Value="#2A8DD4" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
ItemWidth="{Binding (ListView.View).ItemWidth, RelativeSource={RelativeSource AncestorType=ListView}}"
MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
ItemHeight="{Binding (ListView.View).ItemHeight, RelativeSource={RelativeSource AncestorType=ListView}}" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Width="140" Height="25">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Content="{Binding Name}" ToolTip="{Binding Name}" VerticalAlignment="center" HorizontalAlignment="Center"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Window>
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)