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

DevExtreme v22.1正式版下载

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

通用主题

Material Design主题

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

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复选框,然后执行最后一步。

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

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

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

应用程序主题研发有妙招!DevExtreme拥有多种预定义主题样式相关推荐

  1. Xamarin 2021Crack,主题机制和预定义主题

    Xamarin 2021Crack,主题机制和预定义主题 适用于Xamarin 2021 Crack提供了更多 70 个控件,使每个开发人员(无论他们的经验如何)都能够从单个代码库为 iOS.Andr ...

  2. 开源代码难阅读?几位研发的“妙招”帮你解决

    毫无疑问,开源已经成为未来软件发展的一大重要趋势.对于企业来说,开源能够进一步提升产品的影响力,拉近与用户的距离,那对于程序员来说,开源又能带来什么呢?作为程序员的你,是否也会产生这些困惑:工作这么忙 ...

  3. 程序员讨厌领导又不想辞职,用一妙招让领导离职,网友:佩服

    作为员工,在职场中,除了想获得高薪福利以外,最大的希望也就是能遇到一位好的领导,他们不仅能给员工带去更多福利和回报,还能培养员工,帮助员工不断成长,学习更多职场技能. 但是如果你运气不好,遇到一位非常 ...

  4. 学计算机是否加速掉发,你的电脑是否经常发生卡顿?让程序员来教你几个提速妙招...

    你的电脑是不是经常卡?速度慢?是不是感到特别烦燥又很无奈?小编今天在这教你们几个提速的妙招,你们不妨一试. 一.随时进行清理 1.打开网页 2.点最上面一排里的"工具" 3.点&q ...

  5. 寒假到了,神兽归笼?程序员整治“熊孩子”有妙招

    寒假到了,全国多省市陆续发布了放假通知,各家"神兽"们即将(已经)"归笼"开启悠闲假期.谁家还没有一个聪明却混乱的孩子,"整治"熊孩子必须有 ...

  6. 小程序商城系统经营小妙招!

    小程序商城系统与传统app相比,小程序无需安装.卸载,用完即走,触手可及,与用户不是粉丝关系,是访问关系,小程序的使用场景多元,可以制作企业微商城,可以打造品牌连锁外卖平台,可以利用小程序做长期的营销 ...

  7. 单表带换密码C语言程序,手表怎么换皮带?自行快速更换皮带妙招

    手表佩戴者经常会遇到这个问题,手表带的时间长了手表皮带就很容易滑落,所以,这个时候你可以自己学会怎样简单快速换表带.手表换皮带其实很简单,不需要为了换个表带专门跑到维修点,还要花费一笔不小的维修费用, ...

  8. tomcat 404错误 原因_软件测试人员定位bug原因的10大妙招分享

    作为一名软件测试人员,日常工作与bug是息息相关的.在发现bug之后,首先要做的就是定位bug,确定bug的存在,然后才是分析bug产生的原因并解决bug. 无论是自己找到的bug,还是开发修复后告诉 ...

  9. 在python中strip_Python中关于strip使用方法的小妙招

    本篇文章给大家分享的内容是Python中关于strip使用方法的小妙招,有着一定的参考价值,有需要的朋友可以参考一下 [开胃小菜] 当提到python中strip方法,想必凡接触过python的同行都 ...

最新文章

  1. UVA1103 古代象形符号 Ancient Messages解题报告(DFS,字符串)难度⭐⭐⭐⭐
  2. 读书笔记:理论生态学原理及应用(一)——合作的机制
  3. keepalived 高可用日志说明及实战配置日志路径
  4. 王达:影响100万网管员的“网管员”『英雄故事』
  5. C语言的函数调用过程(栈帧的创建与销毁)
  6. 修改mysql数据库名方法_安全快速修改Mysql数据库名的5种方法
  7. 如何让Jtable不可编辑?(
  8. LINQ系列:Linq to Object排序操作符
  9. 面试高频题:springboot自动装配的原理你能说出来吗?
  10. MySQL模糊查询的那些谣言
  11. Linux下编译CMake
  12. Ubuntu下两款划词翻译神器
  13. Qt/C++ 网易云api 在线播放音乐
  14. 生产订单管理系统软件哪家好?
  15. java debug命令详解_DEBUG命令使用解析及范例大全
  16. 使用JOPENS-MSDP系统进行简单的地震定位
  17. 如何写网站建设策划书
  18. 解决 python plt画柱状图(棒状图)时横坐标刻度线不在中间而在右边
  19. 《A Study on Performance Benefifits of Core Morphing in an Asymmetric Multicore Processor》文献精读1
  20. VAM语料库--学习笔记

热门文章

  1. 学号:2103101008 姓名:谢天贤 博客名:桃花岛——江南
  2. Active Directory 01 - “史上最全”测试环境搭建模板
  3. 游戏老玩家告诉你如何3步戒掉游戏瘾
  4. CentOS7 下处理挖矿僵尸网络dota3木马攻击
  5. 中国汽车价格为什么比国外贵那么多
  6. a large quantity of谓语用单数或复数都可,后接可数名词复数或不可数名词
  7. js实现json和xml之互转
  8. kali操作系统--namp扫描,破解密码,抓包
  9. Gitee开源项目分享:知途云仓一件代发礼品网源码
  10. css自定义虚线(可设置虚线间隔)