DevExpress WPF附带30+个自定义设计的应用程序主题,无需修改即可使用这些主题,也可以在免费的WPF 主题设计器应用程序中自定义它们。您可以将每个主题应用于 DevExpress WPF 控件和支持的标准 WPF 控件。
当您在应用程序中引用 DevExpress WPF 库时,该应用程序将应用 Office2019Colorful 主题。 此主题影响所有 DevExpress WPF 控件和支持的标准 WPF 控件,您可以重置应用于标准 WPF 控件的DevExpress主题。
支持的标准控件列表
以下标准 WPF 控件支持 DevExpress WPF 主题。
- System.Windows.Button
- System.Windows.CheckBox
- System.Windows.ComboBox
- System.Windows.ComboBoxItem
- System.Windows.ContextMenu *
- System.Windows.Expander
- System.Windows.GridSplitter
- System.Windows.GroupBox
- System.Windows.Label
- System.Windows.ListBox
- System.Windows.ListBoxItem
- System.Windows.Menu *
- System.Windows.Page
- System.Windows.PasswordBox *
- System.Windows.ProgressBar
- System.Windows.RadioButton
- System.Windows.Controls.Primitives.ScrollBar
- System.Windows.ScrollViewer
- System.Windows.Separator
- System.Windows.Slider
- System.Windows.TabControl
- System.Windows.TabItem
- System.Windows.TextBox
- System.Windows.ToolTip
- System.Windows.TreeView
- System.Windows.TreeViewItem
这些控件仅在 Office2016SE、VS2017、Office2019 和 VS2019 主题中被支持。
应用一个DevExpress主题
将DevExpress主题应用于程序
方法一
打开窗口或用户控件的智能标签,展开 ApplicationTheme下拉列表,然后选择一个主题:
生成的 App.config 文件如下所示:
App.config
... <configSections> <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="DXThemeManager" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> </sectionGroup> </configSections> ... <userSettings> <DXThemeManager> <setting name="ApplicationThemeName" serializeAs="String"> <value>Office2019White</value> </setting> </DXThemeManager> </userSettings> ...
方法二
在应用程序启动时将 ApplicationThemeHelper.ApplicationThemeName 属性设置为主题名称:
C#
public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { ApplicationThemeHelper.ApplicationThemeName = Theme.MetropolisLightName; base.OnStartup(e); } }
VB.NET
Class Application Protected Overrides Sub OnStartup(e As StartupEventArgs) ApplicationThemeHelper.ApplicationThemeName = Theme.MetropolisLightName MyBase.OnStartup(e) End Sub End Class
您可以将功能区库主题选择器添加到应用程序。
将DevExpress主题应用于容器
指定附加的ThemeManager.ThemeName 属性,您可以将该属性应用于 DevExpress WPF 控件和支持的 WPF 标准控件。 以下代码示例将Office2016SEWhite主题应用于ThemedWindow,将 Office2019Black主题应用于GridControl:
XAML
<ThemedWindow ... xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" dx:ThemeManager.ThemeName="Office2016SEWhite"> <dxg:GridControl dx:ThemeManager.ThemeName="Office2019Black"> ... </dxg:GridControl> </ThemedWindow>
重置应用的DevExpress主题
重置主题时,DevExpress WPF主题不再影响标准WPF控件,DevExpress WPF控件的外观来自内置于控件程序集中的DeepBlue主题。
将应用的DevExpress主题重置为应用程序
方法一
单击窗口智能标签中的“X”按钮:
XAML
... <userSettings> <DXThemeManager> <setting name="ApplicationThemeName" serializeAs="String"> <value>None</value> </setting> </DXThemeManager> </userSettings> ...
方法二
在应用程序启动时将ApplicationThemeHelper.ApplicationThemeName属性设置为Theme.NoneName:
C#
using DevExpress.Xpf.Core; ... public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { ApplicationThemeHelper.ApplicationThemeName = Theme.NoneName; base.OnStartup(e); } }
VB.NET
Imports DevExpress.Xpf.Core ... Public Partial Class App Inherits Application Protected Overrides Sub OnStartup(ByVal e As StartupEventArgs) ApplicationThemeHelper.ApplicationThemeName = Theme.NoneName MyBase.OnStartup(e) End Sub End Class
重置应用于容器的DevExpress主题
将附加的 ThemeManager.ThemeName 属性设置为 None:
XAML
<ThemedWindow ... xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"> <dxg:GridControl dx:ThemeManager.ThemeName="None"> ... </dxg:GridControl> </ThemedWindow>
仅为标准WPF控件重置DevExpress主题
仅为具有标准 WPF 控件的容器重置 DevExpress 主题:
- 重置应用主题
- 仅将主题应用于包含 DevExpress WPF 控件的容器。
App.config
... <userSettings> <DXThemeManager> <setting name="ApplicationThemeName" serializeAs="String"> <value>None</value> </setting> </DXThemeManager> </userSettings> ...
MainWindow.xaml
<ThemedWindow ... xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"> <dxg:GridControl dx:ThemeManager.ThemeName="Office2019White"> ... </dxg:GridControl> <ComboBox> ... </ComboBox> </ThemedWindow>
DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。
DevExpress技术交流群4:715863792 欢迎一起进群讨论