User interface 有没有办法指定特定UI元素使用哪个主题?

User interface 有没有办法指定特定UI元素使用哪个主题?,user-interface,windows-8,themes,User Interface,Windows 8,Themes,例如,使用灯光主题意味着back和appbar按钮为黑色。 然而,当使用较暗的应用程序栏颜色时,按钮的对比度是明显的。 这是一个屏幕抓图,忽略白色的质量 有没有办法直接访问导致一个主题图标与另一个主题图标对比的样式 注意:我正在构建一个C#+XAML应用程序。您可以通过在Visual Studio中展开项目下的“引用”节点,然后展开JavasScript 1.0的Windows库节点,然后展开CSS文件夹来查看每个主题使用的CSS AppBar颜色的相关行似乎从我的ui dark.css文件的第

例如,使用灯光主题意味着back和appbar按钮为黑色。 然而,当使用较暗的应用程序栏颜色时,按钮的对比度是明显的。 这是一个屏幕抓图,忽略白色的质量

有没有办法直接访问导致一个主题图标与另一个主题图标对比的样式


注意:我正在构建一个C#+XAML应用程序。

您可以通过在Visual Studio中展开项目下的“引用”节点,然后展开JavasScript 1.0的
Windows库节点,然后展开
CSS
文件夹来查看每个主题使用的CSS


AppBar颜色的相关行似乎从我的
ui dark.css
文件的第2621行开始。第2448行还指定了
.win commandimage
项的颜色,这是大多数appbar命令的图标。您应该能够在项目的样式表中覆盖这些设置。

事实证明,Windows 8只使用前景颜色(它从选定的主题样式继承)


这意味着你所需要做的就是设置前景来改变图标的颜色,赢家

每个主题的应用程序栏按钮的颜色定义为您可以覆盖的资源。我已经在上一节描述了这个过程


因为您的方法应该足够简单,可以抓取应用程序栏上的“亮”按钮资源,并使用它们来覆盖“暗”资源。

首先,按钮看起来有点像这样:

在StandartStyles.xml下,您必须首先查找样式
AppBarButtonStyle
以更改图标颜色,然后查找

现在,将
{StaticResource AppBarItemForegroundThemeBrush}
替换为所需的颜色,您可以同时使用
白色和
#FFFFFFFF
。现在你已经改变了你的图标的视觉效果,你应该有这样的东西

现在您需要为下面的文本设置样式,这是通过查找


如果你一直向下滚动,你会发现
等等。

我的错,没有指定这是一个C#+XAML应用程序问题不在于选择AppBarColor,而是通过选择light主题,应用程序中出现的图标是黑色的。如果我选择黑色主题,图标是白色的。我希望白色图标有一个轻主题,这就是问题所在(也是我的问题所在)。我以前读过那篇文章,它没有提到AppBarButton,这是我的问题所在。如果您可以找到正确的键来覆盖,只针对AppBarbuttons(而不是我在回答中提到的前景色),我会将其标记为答案。您需要覆盖的资源是以“AppBarItem”开头的资源。您需要从我的文章中提到的“C:\Program Files\Windows Kits\8.0\Include\winrt\xaml\design\themeresources.xaml”中获取这些资源的轻版本,并将它们包含在您的应用程序中。
    <VisualState x:Name="PointerOver">
        <Storyboard>
            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground">
    <!-- the background of the actionbar-> !--><DiscreteObjectKeyFrame KeyTime="0" Value="yourBackgroundColor"/> 
                                    </ObjectAnimationUsingKeyFrames>
            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Content" Storyboard.TargetProperty="Foreground">
    <!-- the icon of the actionbar-> --><DiscreteObjectKeyFrame KeyTime="0" Value="yourActionBarIconColor"/> 
                                    </ObjectAnimationUsingKeyFrames>
        </Storyboard>
    </VisualState>