前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C# WPF UI框架MahApps切换主题

C# WPF UI框架MahApps切换主题

作者头像
用户9127601
发布于 2022-06-09 13:39:25
发布于 2022-06-09 13:39:25
1.1K00
代码可运行
举报
文章被收录于专栏:dotNET编程大全dotNET编程大全
运行总次数:0
代码可运行

概述

本指南将向您介绍MahApps.Metro如何切换主题,所有的MahApps.Metro的主题都包含在单独的资源字典中。

如何使用主题

您可以在以下可用配色方案中进行选择:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"Red", "Green", "Blue", "Purple", "Orange", "Lime", "Emerald", "Teal", "Cyan", "Cobalt", "Indigo", "Violet", "Pink", "Magenta", "Crimson", "Amber", "Yellow", "Brown", "Olive", "Steel", "Mauve", "Taupe", "Sienna"

这些基本主题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"Light", "Dark"

通过App.xaml使用主题:

最快的方法是在App.xaml中指定主题资源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Application x:Class="SampleApp"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
  <Application.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
        <!-- Theme setting -->
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Light.Blue.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>

通过主题管理器使用主题:

MahApps.Metro有一个ThemeManager类,可以使用后台代码更改主题。可以在一行中完成,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using ControlzEx.Theming;

public partial class SampleApp : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        // Set the application theme to Dark.Green
        ThemeManager.Current.ChangeTheme(this, "Dark.Green");
    }
}

在与应用程序主窗口不同的窗口上

和MahApps在一样,对于MetroWindow,你可以有不同的主题。主窗口或任何其他MetroWindows将在应用程序中保留指定的主题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Controls:MetroWindow.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Dark.Red.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Controls:MetroWindow.Resources>

您也可以使用TheManager执行此操作,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using ControlzEx.Theming;

public partial class MainWindow : MetroWindow
{
    public void MainWindow()
    {
        InitializeComponent();

        // Set the window theme to Dark.Red
        ThemeManager.Current.ChangeTheme(this, "Dark.Red");
    }
}

创建自定义主题

MahApps的另一个不错的功能。Metro将使用自定义创建的主题或运行时创建的主题。

声明

翻译自:https://mahapps.com/docs/themes/usage#on-a-window-different-to-your-applications-main-window

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 dotNET编程大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【愚公系列】2023年02月 .NET CORE工具案例-MahApps.Metro基于WPF的UI控件库
MahApps.Metro是一个用于开发Windows应用程序的开源.NET库,它可以提供一种简单的方式来为WPF应用程序添加丰富的用户界面元素。
愚公搬代码
2023/03/16
7260
【愚公系列】2023年02月 .NET CORE工具案例-MahApps.Metro基于WPF的UI控件库
.NET CORE(C#) WPF亚克力窗体
使用 .Net Core 3.1 创建名为 “AcrylicWindow” 的WPF模板项目,添加三个Nuget库:MaterialDesignThemes、MaterialDesignColors和FluentWPF,其中亚克力效果是由FluentWPF控件库实现的。
沙漠尽头的狼
2020/01/16
2.4K0
少量代码设计一个登录界面 - .NET CORE(C#) WPF开发
继续 MaterialDesignThemes 开源控件库学习,本文简单使用输入控件的水印附加属性:materialDesign:HintAssist.Hint。
zls365
2020/12/29
1.6K0
少量代码设计一个登录界面 - .NET CORE(C#) WPF开发
一款的 WPF 主题和控件包,免费开源
基于 .Net Framework 4.6 和 .Net Core 3.1 和 .Net 6 的 WPF
沙漠尽头的狼
2023/08/31
4780
一款的 WPF 主题和控件包,免费开源
少量代码设计一个登录界面(二) – .NET CORE(C#) WPF开发
使用 .NET CORE 3.1 创建名为 “Login” 的WPF模板项目,添加1个Nuget库:MaterialDesignThemes.3.1.0-ci981。
zls365
2020/12/29
1.5K0
少量代码设计一个登录界面(二) – .NET CORE(C#) WPF开发
06Prism WPF 入门实战 - Log&控件库
源码及PPT地址:https://github.com/JusterZhu/wemail
JusterZhu
2022/12/07
7700
06Prism WPF 入门实战 - Log&控件库
WPF XAML 为项目设置全局样式
正确的做法是封装统一风格的所有控件。 (例如按钮,统一高宽,字体,字体大小,然后申明到独立的资源字典中, 在App.xaml中引用)
zls365
2021/10/19
1.9K0
C# WPF MVVM开发框架Caliburn.Micro快速搭建③
既然Caliburn.Micro更喜欢ViewModel优先的方法,让我们从这里开始。
用户9127601
2022/01/13
1.6K0
C# WPF MVVM开发框架Caliburn.Micro快速搭建③
WPF中UI框架推荐
https://github.com/Mochengvia/Panuon.Documents/blob/master/Documents/PanuonUI.Silver/zh-cn.md
码客说
2022/03/13
2.2K0
WPF 将 StaticResource 和 ResourceDictionary 放在一起的魔幻行为
本文将记录一些在 WPF 里面,使用 StaticResource 将 ResourceDictionary 玩坏的做法。大家可以放心的是,这些玩法基本只有高级玩家或逗比开发者才会使用到
林德熙
2023/06/23
8500
WPF 使用 HandyControl 给 ListView 添加漂亮的表头效果
本文将来安利大家一个很好用的 UI 控件库,著名的 HandyControl 库。在想要给 ListView 添加一个表头,同时想要这个 ListView 在没有美工小姐姐的帮助下也能看起来比较好看,此时就特别适合使用 HandyControl 库
林德熙
2020/07/28
4.1K0
WPF 使用 HandyControl 给 ListView 添加漂亮的表头效果
UWP开发01之Windows UI2.x
官方地址:https://docs.microsoft.com/zh-cn/windows/apps/winui/winui2/
码客说
2020/08/20
8360
.NET 9 中为 WPF 新增的功能
本文介绍适用于 .NET 9 的 Windows Presentation Foundation (WPF) 中的新增功能。今年 WPF 的主要关注领域是改进 WPF 的视觉功能,并为 Windows 11 提供基于 Fluent 设计原则的新主题。
独立观察员
2024/11/23
1910
.NET 9 中为 WPF 新增的功能
WPF 已知问题 资源字典树引用与资源寻找的坑
大家都知道,在 WPF 里面,可以让资源字典合并其他资源字典,从而定义出资源字典引用树。然而在资源字典引用树里面,如果没有理清关系,将可以作出一个超级复杂的引用关系网。如果在性能优化中,将网断开部分,可能就会出现找不到资源的情况。本文将告诉大家 WPF 的资源字典树在引用和寻找关系上的坑
林德熙
2022/08/12
9360
WPF 已知问题 资源字典树引用与资源寻找的坑
开源WPF控件库推荐:ModernWpf
站长从博客园 林德熙 处了解到此控件库,通过clone、编译、运行,发现这库确实不错,正如 林德熙 所言:“有十分漂亮的界面,整个都是 Win10 风,界面部分和默认 UWP 相近, 这个库支持了 .NET Framework 4.5 和以上的版本,以及 .NET Core 3.0 和以上的版本,可以在 Windows Vista SP2 和以上的系统运行。” 本人遂从该仓库中将readme搬运过来,希望让更多人知道有这个库的存在,能给WPF开发者多一个UI库选择。
zls365
2020/12/29
4.6K0
开源WPF控件库推荐:ModernWpf
使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题
发布于 2018-07-21 13:51 更新于 2018-07-24 01:17
walterlv
2018/09/18
3.6K0
使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题
UWP基础教程 - XAML资源
在Windows 10 UWP应用开发中,XAML用于应用界面设计,无论是开发人员还是设计人员经常会设计自定义用户界面或者控件行为,其中会涉及到不同方面的代码设计,例如控件模板,控件样式,动画设计等。为了方便设计,管理和重复利用这些通用代码,XAML提出了资源(Resources)的概念 资源(Resources),其概念和Web应用中的CSS(Cascading Style Sheets)样式类似,其目的为了实现对象的重复调用。在Windows 10 UWP应用开发中,资源的概念不仅仅局限于对控件样
陈仁松
2018/03/20
1.6K0
为什么同样的WPF控件在不同的电脑上呈现外观不一致
今天有同事跑过来说遇到了一个奇怪的bug,同样的程序在win7和win10上界面相差了2个像素
黄腾霄
2020/06/10
1.3K0
WPF 漂亮的现代化控件 新 ModernWPF 界面库
这是一个在 GitHub 上完全开源的库,有十分漂亮的界面,整个都是 Win10 风,界面部分和默认 UWP 相近
林德熙
2020/09/15
2.5K0
WPF 漂亮的现代化控件 新 ModernWPF 界面库
C# WPF框架Caliburn.Micro入门实例1
详细介绍了一个最简单的Caliburn.Micro框架如何搭建起来,今天我们接着上次的话题继续讲解。
用户9127601
2021/11/01
7630
推荐阅读
相关推荐
【愚公系列】2023年02月 .NET CORE工具案例-MahApps.Metro基于WPF的UI控件库
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验