C# DevExpress 15.1 WPF-应用自定义主题

C# DevExpress 15.1 WPF-应用自定义主题,c#,wpf,devexpress,devexpress-wpf,C#,Wpf,Devexpress,Devexpress Wpf,我无法将自定义主题应用于DevExpress 15.1 WPF应用程序 我已完成以下步骤: 使用DevExpress主题编辑器(最新版本)基于Metropolis Light创建新主题 编译它 在我的应用程序中添加对已编译dll的引用 在我的主窗口中的InitializeComponent()之前添加以下内容: Theme-Theme=新主题(“MyTheme”、“DevExpress.Xpf.Themes.MyTheme.v15.1”); theme.AssemblyName=“DevExp

我无法将自定义主题应用于DevExpress 15.1 WPF应用程序

我已完成以下步骤:

  • 使用DevExpress主题编辑器(最新版本)基于Metropolis Light创建新主题
  • 编译它
  • 在我的应用程序中添加对已编译dll的引用
  • 在我的主窗口中的
    InitializeComponent()
    之前添加以下内容:

    Theme-Theme=新主题(“MyTheme”、“DevExpress.Xpf.Themes.MyTheme.v15.1”);
    theme.AssemblyName=“DevExpress.Xpf.Themes.MyTheme.v15.1”;
    主题。注册主题(主题);
    SetTheme(this,theme)

结果是例外:

An exception of type 'System.Reflection.TargetInvocationException' occurred in System.Xaml.dll but was not handled in user code

Additional information: Exception has been thrown by the target of an invocation
内部例外

{"Object reference not set to an instance of an object."}

at DevExpress.Xpf.Core.ThemedElementsDictionary.GetAssemblyFullName(Object key)
at DevExpress.Xpf.Core.ThemedElementsDictionary.RegisterThemeType(String themeName, String fullName, Object key)
你知道我做错了什么吗?也许它在15.1中已经改变了?

您已经非常接近了

我在App.xaml.cs的OnStartup方法中添加了以下代码:

var myTheme = new Theme("Dark", "DevExpress.Xpf.Themes.Dark")
{
    AssemblyName = "DevExpress.Xpf.Themes.Dark.v15.1"
};
Theme.RegisterTheme(myTheme);
ThemeManager.ApplicationThemeName = myTheme.Name;

我相信,如果您在Devexpress上询问我们在较新版本的Devexpress中,应用程序名称已被弃用,您的运气会更好。改为使用以下行为整个应用程序设置默认主题:
ApplicationThemeHelper.ApplicationThemeName=myTheme.Name