我在最近的Windows 8应用程序中使用了ItemView,但是,所选项目具有这种icky蓝色/紫色背景,我更愿意用适合应用程序的东西替换它。
不幸的是,由于这是一个Windows 8应用程序,因此文档非常有限,超出了Microsoft自己的范围,而且我的搜索结果没有任何用处。
我想知道是否有人在“以前称为Metro的界面”应用程序中找到了如何做到这一点。
我用C#编写了我的应用程序。
编辑:解决方案
您可以向App.xaml ResourceDictionary添加资源。如果它们与控件使用的资源名称匹配,则它们将覆盖该值。这适用于所有控件,而不仅仅是ItemView。被覆盖的资源也将出现在Blend中。
答案 0 :(得分:8)
要覆盖所选项目的默认紫色重音,您需要覆盖资源字典中的某些画笔并提供自己的颜色:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- overrides -->
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBackgroundThemeBrush" Color="#00FFFFFF" />
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBorderThemeBrush" Color="#80FFFFFF" />
<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="#40FFFFFF" />
</ResourceDictionary>
答案 1 :(得分:0)
我发现这更好:
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBackgroundThemeBrush" Color="Transparent" />
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBorderThemeBrush" Color="Transparent" />
<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="Transparent" />