我可以更改/“重新绑定”默认的WinRT系统画笔/调色板颜色以匹配我的应用程序吗?

时间:2012-04-24 05:26:43

标签: c# xaml windows-runtime windows-store-apps winrt-xaml

这样做是最好的做法吗?

因此,例如,HyperlinkPointerOverBrush定义了深蓝色/绿色,这是我的应用程序在您的鼠标/“手指”悬停在链接上时继承的默认画笔颜色。但是,深蓝色/绿色的颜色分配可以很容易地改变成其他东西吗?

(下面说明了我的应用程序引用的系统画笔列表) enter image description here

我尝试将HyperlinkPointerOverBrush设置为我App.xaml中的不同内容:

<SolidColorBrush x:Key="HyperlinkPointerOverBrush" Color="#FF0A2562"/>

在我的地铁应用程序中,但无济于事;我的链接仍然保持默认的深蓝色/绿色。

关于我如何处理这个问题的任何想法?以及定义应用程序的系统刷子的最佳实践。你想在Windows 8 Metro风格的WinRT应用上使用“Palette”吗? (那是满口的)

感谢。

2 个答案:

答案 0 :(得分:4)

您可以覆盖所有系统画笔,只需将具有相同键的画笔放入资源中即可:

<ResourceDictionary>
    <SolidColorBrush x:Key="ListBoxItemSelectedBackgroundThemeBrush" Color="Green" />
</ResourceDictionary>

可以在此处找到WinRT的所有系统画笔列表: http://www.win8tutorial.net/styling/windows-8-1-theme-resources/

最棘手的事情是找到合适的画笔来覆盖,因为它有超过一百个。

问候

基督教
http://www.wpftutorial.net

答案 1 :(得分:3)

winrt程序集中开箱即用的控件具有使用这些程序集中的资源的样式和模板。你可以做的一件简单的事就是在app.xaml中设置RequestedTheme =“Light”。要更改任意画笔,您还需要在使用控件时通过显式覆盖它们来修改样式/模板。

您可以转到“编辑模板”/“编辑副本...”,在设计视图上下文菜单中提取默认模板。然后,您将使用主题资源修改提取的样式。

您可以通过将其合并到App.xaml / MergedDictionaries中来使用预定义的资源集或主题,因为Common / StandardStyles.xaml位于基本模板中。可能如果您定义了多个使用相同键的主题资源字典 - 您可以动态更改App.xaml中的合并字典以在运行时更改主题。