我们都知道Devexpress内置了很多themes,那要怎么在使用时动态更改呢。

下面是方法以:

1、如果你们已经有主题了,那就在XAML中删除类似下下面的语句。

dx:ThemeManager.ThemeName="LightGray" 

2、确保你的XAML中Window是引用下面的

<dx:DXWindow

后台也一样:

MainWindow : DXWindow

3、下面就可以读取DevExpress中所有的主题:

comboBoxEdit1.ItemsSource = Theme.Themes;

4、更换应用主题:

ThemeManager.ApplicationThemeName = Theme.Themes[comboBoxEdit1.SelectedIndex].Name;

5、主程序更新布局:

this.UpdateLayout(); //重新布局

下面是Demo的完整代码:

<dx:DXWindow
x:Class="theme.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
Title="DXApplication" Height="300" Width="400"
SnapsToDevicePixels="True" UseLayoutRounding="True"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
>
<dx:DXWindow.Resources> </dx:DXWindow.Resources> <Grid>
<dxe:ComboBoxEdit HorizontalAlignment="Left" Margin="64,85,0,0" Name="comboBoxEdit1" VerticalAlignment="Top" Width="150" />
<dxe:TextEdit EditValue="一个中国人" Height="40" Width="200" Margin="64,120,0,0" />
</Grid> </dx:DXWindow>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using DevExpress.Xpf.Core; namespace theme
{
public partial class MainWindow : DXWindow
{
public MainWindow()
{
InitializeComponent(); this.Loaded += delegate(object sender, RoutedEventArgs e)
{
comboBoxEdit1.ItemsSource = Theme.Themes;
comboBoxEdit1.SelectedIndex = 0;
}; comboBoxEdit1.SelectedIndexChanged += delegate(object sender, RoutedEventArgs e)
{
ThemeManager.ApplicationThemeName = Theme.Themes[comboBoxEdit1.SelectedIndex].Name;
this.UpdateLayout(); //重新布局
}; }
}
}

DevExpress 动态换肤的更多相关文章

  1. hybird之web动态换肤实现

    前言 最近在重构个hybird(原生的壳包着Web页面)的UI框架,进行到了做换肤功能的阶段,所以这里是我思考的解决的方法. 预想 目前实现换肤的功能无非就两种做法. 1.写几个皮肤文件,然后切换使用 ...

  2. CocoStudio基础教程(4)骨骼动画的动态换肤

    1.概述 游戏中人物的状态会发生改变,而这种改变通常要通过局部的变化来表现出来.比如获得一件装备后人物形象的改变,或者战斗中武器.防具的损坏等.这些变化的实现就要通过动态换肤来实现. 2.运行到程序 ...

  3. duilib入门之贴图描述、类html文本描述、动态换肤、Dll插件、资源打包

    转载自duilib入门文档 贴图描述: Duilib的表现力丰富很大程度上得益于贴图描述的简单强大.Duilib的贴图描述分为简单模式和复杂模式两种. 简单模式使用文件名做为贴图描述内容,在这种方式下 ...

  4. Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤

    概述 游戏中人物的状态会发生改变,而这种改变通常要通过局部的变化来表现出来.比如获得一件装备后人物形象的改变,或者战斗中武器.防具的损坏等.这些变化的实现就要通过动态换肤来实现.在接下来的这个Demo ...

  5. Android动态换肤(二、apk免安装插件方式)

    在上一篇文章Android动态换肤(一.应用内置多套皮肤)中,我们了解到,动态换肤无非就是调用view的setBackgroundResource(R.drawable.id)等方法设置控件的背景或者 ...

  6. Android动态换肤(一、应用内置多套皮肤)

    动态换肤在很多android应用中都有使用,用户根据自己的喜好设置皮肤主题,可以增强用户使用应用的舒适度. Android换肤可以分为很多种,它们从使用方式,用户体验以及项目框架设计上体现了明显的差异 ...

  7. element-ui 动态换肤

    1.在安装好 element-ui@2.x 以后,首先安装sass-loader npm i sass-loader node-sass -D 2.安装 element-theme npm i ele ...

  8. WPF之动态换肤

    原文:WPF之动态换肤 如何实现换肤呢,对于复杂的换肤操作,如,更换按钮样式.窗口样式等,我们需要写多个资源字典来表示不同的皮肤,通过动态加载不同的资源字典来实现换肤的效果:对于简单的换肤操作,如更改 ...

  9. vue+ element 动态换肤

    转至 https://www.cnblogs.com/dengqichang/p/10364455.html 一.搭建好项目的环境. 二.根据ElementUI官网的自定义主题(http://elem ...

  10. 【WPF】实现动态切换语言(国际化)以及动态换肤功能

    前言:以下内容,手把手从搭建到最终实现,完成多语言切换以及换装功能. 本地系统环境:win 10 编译器环境:VS2022 社区版 .NET 环境: .NET 6 1.新建一个WPF项目 2.新建完毕 ...

随机推荐

  1. HttpProxyCacheServer (音视频缓存框架)

    implementation 'com.danikula:videocache:2.7.0' //包 MyApplication 中: //音视频缓存框架private HttpProxyCacheS ...

  2. K8s之Etcd的备份与恢复

    ETCD简介 ETCD用于共享和配置服务发现的分布式,一致性的KV存储系统. ETCD是CoreOS公司发起的一个开源项目,授权协议为Apache. ETCD 存储 k8s 所有数据信息 ETCD 是 ...

  3. 2.3 在DispatcherServlet的构造方法中解析applicationContext.xml配置文件

    package com.hy.servlet; import java.io.IOException; import java.io.InputStream; import java.util.Map ...

  4. IntelliJ IDEA2021.3破解教程【Windows10系统】

    IntelliJ IDEA2021.3破解教程[Windows10系统] 以下仅为本人工作.学习过程中所接触到的内容,不足之处请多包涵. 官网下载地址 最新版:https://www.jetbrain ...

  5. RabbitMQ-01-使用Java进行简单消息发送与接收

    前言 这里使用手动管理jar与使用Maven管理jar两种方式,分别演示消息的发送和接收. 手动管理jar实现消息发送与接收 添加jar amqp-client-5.7.1.jar slf4j-api ...

  6. svn 中的trunk,tags,branches分别是什么意思?

    1.trunk是主分支,是日常开发进行的地方.2.branches是分支.一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中.又比如为不同用户客制化的版本 ...

  7. nacos启动失败

    报错如下: 通过第二个圈可以看出,没有发现9848端口,才想起来自己Spring Cloud Alibaba依赖对应的nacos版本是2.0.4,而启动的nacos服务却是1.x版本,才导致这个报错. ...

  8. Java笔记_构造方法/构造器

    构造方法/构造器(constructor)   怎么来的?之前在创建对象时,是先把一个对象创建好后,再给这个对象的属性赋值,如果现在要求在创建一个对象时,就直接指定这个对象的属性,该怎么做?此时就可以 ...

  9. ubuntu亲测安装opencv和成功解决Makefile:160: recipe for target 'all' failed make: *** [all] Error 2

    1.因为项目需要,我安装的是opencv3.0.0,从github上面下载的opencv包 git clone https://github.com/Itseez/opencv.git git clo ...

  10. (三)用go实现平衡二叉树

    本篇,我们用go简单的实现平衡二叉查找树.具体原理参考大佬博客即可:AVL树(一)之 图文解析 和 C语言的实现 1.节点定义 type AVLNode struct{ data int height ...