【问题标题】:How to apply custom theme in DevExpress?如何在 DevExpress 中应用自定义主题?
【发布时间】:2025-12-22 23:20:12
【问题描述】:

我使用 DevExpress 主题编辑器创建了一个自定义主题,并构建了 dll 文件并将其包含在资源部分中。但是如何将其应用到应用程序中??

【问题讨论】:

    标签: wpf devexpress


    【解决方案1】:

    以下帮助主题提供了有关如何将自定义主题应用于 WPF 应用程序的分步说明: How to: Apply a Newly Created Theme to an Application

    相关文章:WPF Theme Editor

    【讨论】:

    • 这对你们真的有用吗?它对我不起作用,我的硬盘中没有那个 NewTheme 目录,而且我编辑了 2 个不同的主题。
    • @Carlo 我相信你应该和DevExpress Support 讨论这个问题。他们的人几乎可以解决您遇到的所有问题。
    【解决方案2】:

    试试这个:

    public partial class MainWindow : Window 
    {
        public MainWindow() 
        {
            Theme theme = new Theme("MyCustomTheme", "DevExpress.Xpf.Themes.MyCustomTheme.v12.1");
            theme.AssemblyName = "DevExpress.Xpf.Themes.MyCustomTheme.v12.1";
            Theme.RegisterTheme(theme);
            ThemeManager.SetTheme(this, theme);
            InitializeComponent();
        }
    }
    

    不要忘记添加以下命名空间:

    using DevExpress.Xpf.Core;
    

    【讨论】:

    • 感谢您的回复。但它不起作用(我想我必须为此添加程序集引用)。我找到了另一种解决方案: Theme theme = new Theme("MyCustomTheme", "/DevExpress.Xpf.Themes.MyCustomTheme.v12.1;component/Themes/Generic.xaml") { FullName = "MyCustomTheme", AssemblyName = “DevExpress.Xpf.Themes.MyCustomTheme.v12.1”};但我有两个明显的问题: 1. 这会影响应用程序的可移植性吗? 2. 有没有办法提高主题注册时间(因为我采用这种方法时会有一点延迟)?
    【解决方案3】:

    要为整个应用程序设置默认主题,您可以使用以下行:

    ApplicationThemeHelper.ApplicationThemeName = theme.Name;
    

    【讨论】: