在Windows 8商店应用程序的ItemView中更改所选项目的背景颜色

时间:2012-09-10 05:04:34

标签: windows-8 microsoft-metro

我在最近的Windows 8应用程序中使用了ItemView,但是,所选项目具有这种icky蓝色/紫色背景,我更愿意用适合应用程序的东西替换它。

不幸的是,由于这是一个Windows 8应用程序,因此文档非常有限,超出了Microsoft自己的范围,而且我的搜索结果没有任何用处。

我想知道是否有人在“以前称为Metro的界面”应用程序中找到了如何做到这一点。

我用C#编写了我的应用程序。

编辑:解决方案

您可以向App.xaml ResourceDictionary添加资源。如果它们与控件使用的资源名称匹配,则它们将覆盖该值。这适用于所有控件,而不仅仅是ItemView。被覆盖的资源也将出现在Blend中。

2 个答案:

答案 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" />