我们都知道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. pat乙级1014 福尔摩斯的约会

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int ...

  2. js控制关闭layui的switch开关

    <input class="switch" type="checkbox" lay-skin="switch" lay-filter= ...

  3. AD域安装后无法打开网络适配器,提示无法访问指定设备,路径或文件,你可能没有。。。

    虚拟机安装win 2016,配置网络,安装VM tools,激活,重启. 修改计算机名,重启,安装AD域,DNS,重启 然后准备修改DNS指向的时候发现无法打开更改适配器选项. 打开服务器管理器,点击 ...

  4. aop切面记日志

    package com.netauth.utils.component; import java.lang.annotation.ElementType; import java.lang.annot ...

  5. tabs 滑动效果

    https://www.zhangxinxu.com/wordpress/2020/07/css-var-improve-components/ 伪类选择器 https://blog.csdn.net ...

  6. IT之软件公司组织架构

    总结一下软件企业的组织架构,软件公司大部分都很年轻,整个行业还在调整期,一般规模都在300人以内,现在国内大型的软件产品公司都不是靠软件起家的,国内软件三强:华为.中信.海尔都是从硬件甚至是家电做起的 ...

  7. winform应用程序

    1.winform桌面应用程序是一种智能的客户端技术,我们可以使用winform应用程序帮助我们获得信息或者传输信息等 2.属性 Names:在后台要获得前台的控件对象,需要使用Name属性 Visi ...

  8. js将json数据保存下载为json文件

    const button = document.createElement('a'); button.onclick = () => { // 要保存的字符串, 需要先将数据转成字符串 cons ...

  9. SVN检出未响应,版本库浏览打不开卡死。

    今天遇到一个奇葩问题. 1.换了新电脑,首先SVN地址没问题.检出就未响应,不弹出输入用户名,密码. 2.发现装了讯软加密软件,后安装的SVN.(未告知管理员,对新机加密软件配置).配置完可以正常用了 ...

  10. netmiko批量操作网络设备_pandas版

    from concurrent.futures import ThreadPoolExecutor import netmiko import os from threading import Loc ...