【问题标题】:DevExpress 15.1 WPF - Apply custom themeDevExpress 15.1 WPF - 应用自定义主题
【发布时间】:2015-08-04 18:16:51
【问题描述】:

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

我已经做了步骤:

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

    Theme theme = new Theme("MyTheme", "DevExpress.Xpf.Themes.MyTheme.v15.1"); theme.AssemblyName = "DevExpress.Xpf.Themes.MyTheme.v15.1"; Theme.RegisterTheme(theme); ThemeManager.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 中发生了变化?

【问题讨论】:

  • 相信你在 Devexpress 论坛上提问会获得更好的运气

标签: c# wpf devexpress devexpress-wpf


【解决方案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 中,ApplicationThemeName 已被弃用。改为使用以下行为整个应用程序设置默认主题:ApplicationThemeHelper.ApplicationThemeName = myTheme.Name;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多