惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Palo Alto Networks Blog
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
GbyAI
GbyAI
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
量子位
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
CERT Recently Published Vulnerability Notes
Recent Announcements
Recent Announcements
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
P
Privacy International News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 叶小钗
L
Lohrmann on Cybersecurity
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
Hugging Face - Blog
Hugging Face - Blog
P
Proofpoint News Feed
NISL@THU
NISL@THU
博客园 - Franky
C
Cybersecurity and Infrastructure Security Agency CISA
The Register - Security
The Register - Security
M
MIT News - Artificial intelligence
Know Your Adversary
Know Your Adversary
A
Arctic Wolf
F
Full Disclosure
T
Threat Research - Cisco Blogs
P
Privacy & Cybersecurity Law Blog
The Hacker News
The Hacker News
博客园 - 【当耐特】
D
Docker
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Jina AI
Jina AI
Help Net Security
Help Net Security
V
Visual Studio Blog
小众软件
小众软件
B
Blog
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
N
News and Events Feed by Topic
Forbes - Security
Forbes - Security
N
Netflix TechBlog - Medium
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic

博客园 - AABBbaby

从研发到供应链——轻量级CAD查看器SpinFire Insight在汽车行业的应用价值 DevExpress发布文档MCP Server:提升开发体验的AI文档智能服务(五) 基于嵌入向量的智能检索!HOOPS AI 解锁 CAD 零件相似性搜索新方式 从自研到外购:HOOPS如何帮助工业软件开发商加速上市、聚焦差异化 车企携手Tech Soft 3D:基于 HOOPS 工具集打造Web端一体化工程可视化解决方案 CAD格式转换引擎HOOPS Exchange v2026.2.0:计算镶嵌能力升级,释放3D数据处理新潜力 界面控件DevExpress JS & ASP.NET Core v25.2新版亮点 - AI驱动扩展功能升级 CAD格式转换引擎HOOPS Exchange 2026.2.0发布:率先支持 NX 2512,引领工业数据交换新标杆 界面组件DevExpress正式官宣发布v25.2.5|附高速下载 HOOPS Mesh、HOOPS Access 与 HOOPS Solve 发布 SAM 2.15:全面提升 CAE 数据处理与仿真互操作能力 DevExpress WPF中文教程:Data Grid - 服务器模式和即时反馈模式 界面控件DevExpress WinForms中文教程:Data Grid - 数据绑定(二) CAE后处理开发选商业还是开源工具?HOOPS Envision与VTK/ParaView深度对比 DevExpress发布文档MCP Server:提升开发体验的AI文档智能服务(四) 工业级可视化引擎HOOPS Visualize Web 2026.1.0重塑Web 3D可视化体验 界面控件DevExpress VCL v25.2新功能亮点:支持RAD Studio 13 HOOPS可视化技术如何推动SINTEF Ocean海洋结构仿真软件走向工程化应用? DevExpress WPF中文教程:Data Grid - 示例服务教程 突破性迈进 | HOOPS Exchange 2026.1正式发布DGN阅读器,全面开启 DGN 数据高保真访问时代 3D Web可视化引擎HOOPS Visualize Web v2026.1.0更新发布:持续增强Web端工程级3D可视化能力 界面组件DevExpress WPF v22.1 - 全新升级数据分析功能 移动应用开发推荐这个三方组件,时间选择即刻拥有全新体验 UI组件Kendo UI for Angular R3 2022亮点——让应用程序体验更酷炫 如何用界面组件DevExpress WPF创建Excel式的过滤功能?赶紧Get 响应式UI组件DevExtreme 10月新版——v22.1.6全新发布 界面控件DevExtreme中文使用指南——如何构建 & 应用模板 行业领先的界面控价DevExpress 10月新版——v22.1.6发布 「行业应用」界面框架Kendo UI助力企业加速完成财务数据可视化 如何用界面组件DevExpress WinForm创建一个支持High DPI的应用? 界面组件Telerik WinForm R3 2022,让应用启动变得更酷炫 界面组件DevExpress WinForms v22.1新版亮点 - 支持High-DPI UI组件Kendo UI for jQuery R3 2022亮点——拥有全新的按钮组件 界面组件DevExpress WPF TreeView中文指南 - 如何实现数据分层展示 「详解」看界面控件DevExtreme如何实现异步验证 界面控件DevExpress WinForm中文指南 - 使用HTML&CSS模板的条件样式 MyEclipse技术全面解析——Spring IDE,改变应用程序研发 界面组件DevExpress WinForms v22.1 - 类office功能全新升级 界面组件Telerik UI for WPF R3 2022——支持最新的.NET 7预览版 界面控件DevExpress WPF Data Grid组件,拥有XAML设计时项目源向导 B/S端界面控件DevExtreme React Scheduler—与Material UI无缝集成 来看界面组件DevExpress WinForm是如何实现地图搜索的 VCL界面组件DevExpress VCL v22.1 - 发布全新的Shell组件 响应式UI组件集DevExtreme v22.1.5,9月全新发布! 界面组件包DevExpress v22.1.5——9月全新发布 界面控件DevExtreme React Grid—如何将数据导出到Excel文档? 界面控件DevExpress WinForms - 有关.NET Core 6+的项目迁移说明 如何为WPF应用程序制作一个虚拟键盘?这里有答案(Part 2) Visual Studio插件DevExpress CodeRush v22.1- 支持C# 10 一篇文章教你如何用界面组件DevExpress WPF创建一个WPF视图模型 B/S架构下的界面控件DevExtreme甘特图有哪些功能?一起来看 界面控件DevExpress WinForms Property Grid - 全新的Office视图 界面组件DevExpress MAUI & Xamarin v22.1 - 全新的项目模板 界面组件DevExpress WPF Data Grid哪些功能还能增强?一起来看 如何为WPF应用程序制作一个虚拟键盘?这里有答案(Part 1) B/S端界面控件DevExtreme JavaScript—全新的UI模板库 (v22.2) Web开发者福音!创建第一个Vite支持的Web应用(2/2) 界面控件DevExpress WinForms & WPF v22.2——全新的.NET和ARM支持 跨平台UI组件DevExpress XAF v22.1 - 程序集默认面向 .NET 6 如何用界面组件DevExpress WPF Scheduler实现数据的按需加载?
应用程序主题研发有妙招!DevExtreme拥有多种预定义主题样式
AABBbaby · 2022-11-04 · via 博客园 - AABBbaby

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。

DevExtreme v22.1正式版下载

DevExtreme提供Generic、Generic Compact和Material Design主题,这些主题有以下颜色可供选择:

通用主题

B/S端界面控件DevExtreme中文使用指南——如何使用预定义的主题样式?

Material Design主题

B/S端界面控件DevExtreme中文使用指南——如何使用预定义的主题样式?

每个主题都是一个样式表,其中包含CSS类的集合。以下样式表是开箱即用的:

B/S端界面控件DevExtreme中文使用指南——如何使用预定义的主题样式?

CSS主题旨在自定义基于HTML的UI组件,但是基于SVG的UI组件使用它们自己的主题来假定外观与特定CSS主题相匹配。

应用主题

要应用主题,请在索引页的<head>标记中包含主题样式表,您可以使用本地文件或从CDN.获取样式表。

在运行时切换主题

无需重新加载页面

只有当主题属于同一个组时,才可以使用此方法。例如,你可以从Generic Light切换到任何其他通用主题,但不能切换到Generic Compact或Material Design主题(参见预定义主题)。

1. 在index页面中包含主题样式表,如下所示,将应用数据活动属性设置为true的主题。在下面的代码中,它是Generic Light:

<head>
<!-- Generic themes -->
<link rel="dx-theme" data-theme="generic.light" href="css/dx.light.css" data-active="true">
<link rel="dx-theme" data-theme="generic.dark" href="css/dx.dark.css" data-active="false">
<link rel="dx-theme" data-theme="generic.contrast" href="css/dx.contrast.css" data-active="false">
<!-- ... -->
<!-- or Generic Compact themes-->
<!-- link rel="dx-theme" data-theme="generic.light.compact" href="css/dx.light.compact.css" data-active="true" -->
<!-- link rel="dx-theme" data-theme="generic.dark.compact" href="css/dx.dark.compact.css" data-active="false" -->
<!-- link rel="dx-theme" data-theme="generic.contrast.compact" href="css/dx.contrast.compact.css" data-active="false" -->
<!-- ... -->
<!-- or Material Design themes-->
<!-- link rel="dx-theme" data-theme="material.blue.light" href="css/dx.material.blue.light.css" data-active="true" -->
<!-- link rel="dx-theme" data-theme="material.blue.dark" href="css/dx.material.blue.dark.css" data-active="false" -->
<!-- link rel="dx-theme" data-theme="material.teal.light" href="css/dx.material.teal.light.css" data-active="false" -->
<!-- ... -->
</head>

2. 使用DevExpress.ui.themes.current(themeName)方法切换到主题,它从前面的代码中接受数据主题属性的值。如果使用SVG组件,还应该调用refreshTheme() 方法来更新它们的主题,下面的示例展示了如何应用Generic Contrast主题:

DevExpress.ui.themes.current("generic.contrast");
// When using SVG components
// DevExpress.viz.refreshTheme();

// ===== or when using modules =====
import { themes } from "devextreme/ui/themes";
themes.current("generic.contrast");

// When using SVG components
// import { refreshTheme } from "devextreme/viz/themes";
// refreshTheme();

重要提示:如果注意到主题外观有任何问题,请将初始化routine移到initialized(callback) 方法。

使用页面重新加载

这种方法适用于在任何主题之间切换,但它涉及到页面重新加载:

1. 在index页面中包含主题样式表,如下所示。语法与前面指令的第1步相同,但是对于所有主题,数据活动属性都被设置为false。

<head>
<!-- ... -->
<link rel="dx-theme" data-theme="generic.light" href="css/dx.light.css" data-active="false">
<link rel="dx-theme" data-theme="generic.light.compact" href="css/dx.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="material.blue.light" href="css/dx.material.blue.light.css" data-active="false">
<!-- ... -->
</head>

2. 在window.localStorage中保存目标主题的名称并重新加载页面:

var switchTheme = function(themeName) {
window.localStorage.setItem("dx-theme", themeName);
window.location.reload();
}

3. 在页面加载时,恢复主题名称并将其传递给DevExpress.ui.themes.current(themeName)方法。如果在window.localStorage中找不到主题名称,还可以指定要应用的主题。在下面的代码中,它是Material Blue Light主题。

DevExpress.ui.themes.current(window.localStorage.getItem("dx-theme") || "material.blue.light");
// ===== or when using modules =====
import themes from "devextreme/ui/themes";

themes.current(window.localStorage.getItem("dx-theme") || "material.blue.light");

重要提示:如果注意到主题外观有任何问题,请将初始化routine移到initialized(callback) 方法。

颜色调色板

调色板是与主题配色方案一起使用的次级配色方案,您可以使用它们以不同的方式对应用程序的部分进行样式化,例如,当导航侧边栏应该是深色而内容区域应该是浅色时。

颜色调色板是由带特定选择器前缀的限定范围的CSS规则定义的:dx-swatch-xxx(例如,dx-swatch-green),要将调色板应用到HTML文档的某个部分,请按以下方式封装该部分:

<div>
This content applies the primary color scheme

<div class="dx-swatch-dark">
This content applies the "dark" color scheme
</div>
</div>

重要提示:调色板应该属于与主应用程序主题相同的主题(Generic, Generic Compact或Material),例如,如果主应用程序主题是Material,则只能使用基于Material主题的调色板。

您可以使用DevExtreme CLI或ThemeBuilder UI生成调色板:

DevExtreme CLI

下面的命令生成一个新的自定义调色板,它使用Generic Dark作为基础主题:

> devextreme build-theme –-base-theme="generic.dark" --make-swatch --output-color-scheme="dark"
// ===== or without installing DevExtreme CLI globally =====
> npx -p devextreme-cli devextreme build-theme –-base-theme="generic.dark" --make-swatch --output-color-scheme="dark"

该命令的结果是一个dx.generic.dark.css文件,其中每个规则都以.dx-swatch-dark CSS selector为前缀。将文件移动到应用程序文件夹,注册它,并将swatch类添加到页面元素。

ThemeBuilder UI

单击工具栏上的Export来打开Theme Export pop-up对话框,输入调色板的名称,选中Save as a color swatch复选框,然后执行最后一步。

B/S端界面控件DevExtreme中文使用指南——如何使用预定义的主题样式?

单击Download CSS File,将CSS文件保存到本地。

B/S端界面控件DevExtreme中文使用指南——如何使用预定义的主题样式?

将生成的CSS文件移动到应用程序文件夹,注册它,并将swatch类添加到页面元素。

注意:调色板不能用于定制的基于SVG的UI组件,因为UI组件的主题不是使用CSS的UI组件配置。通过预定义的CSS主题,基于SVG的UI组件可以检测页面上使用的是哪个主题,并应用相应的UI组件配置。当基于SVG组件位于调色板内时,检测是不可能的,但是您可以创建和应用一个UI组件配置,使其在视觉上适配调色板。


DevExpress技术交流群6:600715373      欢迎一起进群讨论

更多DevExpress线上公开课、中文教程资讯请上中文网获取