Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】2023年02月 .NET CORE工具案例-MahApps.Metro基于WPF的UI控件库

【愚公系列】2023年02月 .NET CORE工具案例-MahApps.Metro基于WPF的UI控件库

作者头像
愚公搬代码
发布于 2023-03-16 09:23:10
发布于 2023-03-16 09:23:10
84700
代码可运行
举报
文章被收录于专栏:历史专栏历史专栏
运行总次数:0
代码可运行

文章目录


前言

MahApps.Metro是一个用于开发Windows应用程序的开源.NET库,它可以提供一种简单的方式来为WPF应用程序添加丰富的用户界面元素。

MahApps.Metro官方文档:https://mahapps.com/docs/

MahApps.Metro源码网址:https://github.com/MahApps/MahApps.Metro

一、MahApps.Metro基于WPF的UI控件库

1.安装包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MahApps.Metro

2.添加资源

在app.xaml中添加资源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- 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" />

3.主视图改造

主视图的cs文件需要继承MetroWindow

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public partial class StartView : MetroWindow
{
    public StartView()
    {
        InitializeComponent();
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<mah:MetroWindow x:Class="WpfApp8.StartView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:mah="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
        xmlns:cal="http://www.caliburnproject.org" 
        xmlns:local="clr-namespace:WpfApp8"
        mc:Ignorable="d"
        GlowBrush="{DynamicResource MahApps.Brushes.Accent}"
        ResizeMode="CanResizeWithGrip"
        Title="StartView" Height="300" Width="600" WindowStartupLocation="CenterScreen">
    <StackPanel>
        <TextBox Name="TextContent"/>
        <Button x:Name="testBtn" Content="testBtn"   Background="LightCyan"/>
        <ListBox Name="ListBoxItems"  MinHeight="230" Background="LightGray"
                 cal:Message.Attach="[Event SelectionChanged] = [Action ListBoxItems_SelectionChanged($source,$eventArgs)];
                                     [Event MouseUp]=[ListBoxItems_MouseUp($source,$eventArgs)]" />
    </StackPanel>
</mah:MetroWindow>

4.视图的数据源

因为使用的是cm框架,相关数据代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class StartViewModel : Screen
{ 
    public StartViewModel()
    {
        ListBoxItems = new ObservableCollection<string>() { };
        ListBoxItems.Add("愚公一号");
        ListBoxItems.Add("愚公二号");
        ListBoxItems.Add("愚公三号");
    }
    public ObservableCollection<string> ListBoxItems { get; set; }
    public string TextContent { get; set; }
    public void testBtn()
    {
        TextContent = "hello world!";
        NotifyOfPropertyChange(()=> TextContent);
    }

    public void ListBoxItems_MouseUp(object sender, MouseButtonEventArgs e)
    {
        ListBox listbox = sender as ListBox;
        MessageBox.Show("当前操作的控件名称是:"+ listbox.Name);
    }

    public void ListBoxItems_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        TextContent = (sender as ListBox).SelectedItem.ToString();
        NotifyOfPropertyChange("TextContent");
    }
}

5.运行程序

可以看到三个主题控件都显示出来了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C# wpf编程CM框架快速入门项目实例
将导致TextBox的“Text”属性绑定到ViewModel的“FirstName”属性。
用户9127601
2021/12/29
1K0
C# wpf编程CM框架快速入门项目实例
C# WPF UI框架MahApps切换主题
本指南将向您介绍MahApps.Metro如何切换主题,所有的MahApps.Metro的主题都包含在单独的资源字典中。
用户9127601
2022/06/09
1.2K0
C# WPF UI框架MahApps切换主题
C# WPF框架Caliburn.Micro入门实例1
详细介绍了一个最简单的Caliburn.Micro框架如何搭建起来,今天我们接着上次的话题继续讲解。
用户9127601
2021/11/01
8190
【愚公系列】2023年02月 .NET CORE工具案例-Caliburn.Micro的使用基于WPF的改造的MVVM案例
Caliburn.Micro是一个微软开发的用于构建WPF,Silverlight和Windows Phone应用程序的MVVM(模型-视图-视图模型)框架。它提供了一系列的工具和类,帮助开发人员更快,更轻松地构建美观的和可维护的应用程序。
愚公搬代码
2023/03/16
1.4K0
【愚公系列】2023年02月 .NET CORE工具案例-Caliburn.Micro的使用基于WPF的改造的MVVM案例
【愚公系列】2023年11月 WPF控件专题 WindowFormsHost控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/11/12
1.6K0
【愚公系列】2023年10月 WPF控件专题 ListView控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/10/11
1.4K0
C# WPF框架Caliburn.Micro快速搭建
Caliburn是Rob Eisenberg在2009年1月26日(Rob's MIX10 talk "Build Your Own MVVM Framework")提出的一个MVVM类的开源框架。它是一套用于协助开发WPF,Silverlight,WP7和Win RT等的应用程序的库。
zls365
2021/04/02
1.4K0
什么是 WPF 技术?什么是 WPF 样式?下载、安装、配置、基本语法简介教程
WPF教程、WPF开发、.NET 8 WPF、Visual Studio 2022 WPF、WPF下载、WPF安装、WPF配置、WPF样式、WPF样式详解、XAML语法、XAML基础、MVVM架构、数据绑定、依赖属性、资源字典、控件模板、ControlTemplate、DataTemplate、动态主题、MahApps.Metro、MaterialDesignInXamlToolkit、FluentWPF、Windows桌面应用开发、WinForms迁移、WPF性能优化、GPU加速、DirectX渲染、矢量UI、开源组件、社区控件、WPF发布、自包含EXE、PublishTrimmed、Ribbon界面——全面覆盖 WPF 入门到高阶的下载、安装、配置与基本语法教程关键词,助力搜索引擎快速收录并精准匹配 WPF 技术学习需求。
猫头虎
2025/05/28
3310
什么是 WPF 技术?什么是 WPF 样式?下载、安装、配置、基本语法简介教程
【愚公系列】2023年11月 WPF控件专题 Popup控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/11/05
2K0
【愚公系列】2023年10月 WPF控件专题 TreeView控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/10/15
1.2K0
【愚公系列】2023年10月 WPF控件专题 Menu控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/10/13
7320
.NET CORE(C#) WPF亚克力窗体
使用 .Net Core 3.1 创建名为 “AcrylicWindow” 的WPF模板项目,添加三个Nuget库:MaterialDesignThemes、MaterialDesignColors和FluentWPF,其中亚克力效果是由FluentWPF控件库实现的。
沙漠尽头的狼
2020/01/16
2.5K0
【愚公系列】2023年09月 WPF控件专题 Button控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/09/20
7640
【愚公系列】2023年11月 WPF控件专题 RepeatButton控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/11/08
6570
【愚公系列】2023年11月 WPF控件专题 SaveFileDialog控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/11/07
7660
【愚公系列】2023年11月 WPF控件专题 MediaElement控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/11/01
1K0
WPF实现列表分页控件的示例代码分享
[TemplatePart(Name = CountPerPageTextBoxTemplateName, Type = typeof(TextBox))]
用户7718188
2022/11/06
1.6K0
【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/10/12
2.1K0
【愚公系列】2023年11月 WPF控件专题 Page控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/11/15
1.3K0
【愚公系列】2023年09月 WPF控件专题 Label、TextBox、PasswordBox控件介绍
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/09/19
9010
推荐阅读
相关推荐
C# wpf编程CM框架快速入门项目实例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档