如何修改DevExpress WPF控件的主题

 我来答
可以叫我表哥
2015-01-09 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
  DevExpress 控件是利用模版来呈现控件外观的。 要呈现一个绝佳的外观,我们需要使用带有嵌套边框和渐变画笔的复杂模版。这样一来,不能通过简单的风格设置来改变控件的颜色,因为控件的颜色改变取决于不同画笔产生的视觉效果。本文主要想客户展示如何修改主题的模版。
  要修改控件的外观,你需要找到必要元素的模版,将模版嵌入到您的应用程序资源中,准确的修改模版并且不可破坏模版的内部结构。一旦你修改了模版的结构,你便会破坏一些功能。
  另外,还值得一提的是,相同的模版会因为主题的不同而不同。要实现一个特定主题的自定义模版(不是默认深蓝主题),需要在模版KEY中指定ThemeName属性。下面以我们的默认深蓝主题的RowIndicator的模版为例:
  [XAML]
  xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
...
<Window.Resources>
<DataTemplate x:Key="{dxgt:RowIndicatorThemeKey ResourceKey=IconPresenterTemplate}">
....
</DataTemplate>
</Window.Resources>
  如果您分配Office2007Black主题,该模板将不适用。创建一个Office2007Black模板,分配的ThemeName的属性:
  [XAML]
  xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
...
<Window.Resources>
<DataTemplate x:Key="{dxgt:RowIndicatorThemeKey ResourceKey=IconPresenterTemplate,ThemeName=Office2007Black}">
..
</DataTemplate>
</Window.Resources>
  如果你不需要为不同的主题创建模版,您的自定义模板是一个独立的主题,只需设置IsThemeIndependent属性为True:
  [XAML]
  xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
...
<Window.Resources>
<DataTemplate x:Key="{dxgt:RowIndicatorThemeKey ResourceKey=IconPresenterTemplate, IsThemeIndependent=true}">
..
</DataTemplate>
</Window.Resources>
  到现在,最有趣的问题就是如何找到所需模版。在DevExpress WPF中有两种方法可以找到所需模版:使用snoop工具和使用ThemeEditor。
  Snoop工具:这个工具允许你搜索控件的可视化树。
  在控件库文件夹中搜索需要的名称,以GridControl为例:
  "c:\Program Files (x86)\DXperience 12.1\Sources\DevExpress.Xpf.Grid"
  如果你不使用默认名称,你需要在相应的主题文件夹中寻找:
  "c:\Program Files (x86)\DXperience 12.1\Sources\DevExpress.Xpf.Themes"
  最后一步就是,从源代码中复制模版,将模版嵌入到容器资源中如Window.Resources。请记住,你需要使用默认深蓝主题,利用修改后的模版。
  Theme Editor:它是一个独立的编辑器工具,可让你修改内置的DevExpress主题和创建基于内置主题的新主题。该新工具的主要目的是简化挨罚人员编辑第三方主题的繁琐工作,只用一个标记来定位特定的视觉元素和外观设置。
FoolRabbit编程
2015-01-09 · 知道合伙人数码行家
FoolRabbit编程
知道合伙人数码行家
采纳数:619 获赞数:3805
毕业于苏州大学,4年编程经验,对WPF有研究。

向TA提问 私信TA
展开全部
DevExpress.Xpf.Core.ThemeManager.ApplicationThemeName
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式