【问题标题】:WPF Theme resources are not used未使用 WPF 主题资源
【发布时间】:2011-07-12 19:03:56
【问题描述】:

在我正在处理的应用程序中,要求支持 Windows 主题(Aero、Classic、Luna)。

我有一些自定义控件,我想尊重当前的主题。

我已经创建了主题文件夹并放置了

/themes/classic.xaml
/themes/luna.normalcolor.xaml
/themes/aero.normalcolor.xaml
/themes/generic.xaml

在包含自定义控件的项目的 AssemblyInfo.cs 中,我将 ThemeInfo 定义如下:

[assembly: ThemeInfo(
    ResourceDictionaryLocation.SourceAssembly, 
    ResourceDictionaryLocation.SourceAssembly 
)]

当我在 Windows 中更改主题时,所有标准控件都会切换主题,但我的自定义控件拒绝读取除 generic.xaml 之外的任何内容

我在这里遗漏了什么明显的东西吗?

【问题讨论】:

    标签: wpf windows-themes


    【解决方案1】:

    需要检查的一些事项:

    1. 我不确定大写是否重要,但我通常将其视为“Themes/Aero.NormalColor.xaml”等。

    2. 验证 XAML 文件的生成操作是否为“页面”。为此,请选择它们并按 F4。

    3. 如果您的应用程序正在运行,主题将不会切换。大多数本机 WPF 控件利用 SystemColors 类。这意味着它们可以在主题更改时切换颜色,但 Style/ControlTemplate 不会更改。

    如果这些没有帮助,您可能需要发布其他代码,例如您的自定义控件如何覆盖 DefaultStyleProperty 和示例样式。

    【讨论】:

    • 干杯,我会记下你的观点,并在我有更多信息时回复。旁注,项目中的大小写实际上与您输入的完全一样。
    • 我向你的智慧低头。 Build action=Page 为我解决了问题。
    猜你喜欢
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多