Learning WPF / March 15,2015 / Sunday

ModernUI是一个开源的WPF界面库,非常有价值! ModernUI(http://mui.codeplex.com/)是一个开源的WPF界面库,利用该界面库,我们可以创建很酷的应用程序。下面是ModernUI官方示例,你可以从官方网站直接下载源码运行,如果是.NET 4.0的话,记得要声明“NET4”预编译变量,否则无法编译通过。 这个界面框架是基于ModernUI来实现的,在该文我将分享所有的源码,并详细描述如何基于ModernUI来构造一个非常通用的、插件化的WPF开发框架。下载源码的同志,希望点击一下推荐。 本文将按照以下四点来介绍: (1)ModernUI简介; (2)构建通用界面框架的思路; (3)基于ModernUI和OSGi.NET的插件化界面框架实现原理及源码分析; (4)其它更有趣的东西~~。 要编写这样的WPF界面,我们需要在一个Window上声明菜单和Tab页面,下图是定义菜单的声明。 此外,每一个Tab风格页面,你也需要手动的为菜单创建这样的界面元素。 直接用这样的方式来使用ModernUI,显然不太适合团队协作性的并行开发,因为在一个团队的协作中,不同的人需要完成不同的功能,实现不同页面,每个人都需要来更改主界面。 我非常希望模块化的开发方法,因为这可以尽可能的复用现有资产,使程序员可以聚焦在自己关注的业务逻辑上,不需要关心UI的使用。下面,我将来描述基于ModernUI实现的一个通用界面框架,这个界面框架允许程序员在自己的业务模块中配置需要显示的界面元素。 通用界面框架实现思路: 我希望能够实现这样的通用界面框架: (1)程序员可以直接实现需要展现业务逻辑的界面,不需要关注如何使用ModernUI; (2)程序员可以通过简单的配置就可以将自己实现的业务逻辑页面显示在主界面中; (3)这个界面框架可以完全复用。 当我看到ModernUI这个界面库时,我希望将应用程序做成模块化,每一个模块能够: (1)通过以下配置能够直接显示二级菜单。 (2)通过以下配置能够直接显示三级菜单。 这样做的好处是,开发插件的时候可以不需要关心界面框架插件;团队在协作开发应用的时候,可以独立开发并不需要修改主界面;团队成员的插件可以随时集成到这个主界面;当主界面无法满足我们的布局时或者用户需求无法满足时,可以直接替换主界面框架而不需要修改任何插件代码。 最终的效果如下,以下界面的几个菜单及点击菜单显示的内容由DemoPlugin插件、DemoPlugin2插件来提供。当插件框架加载更多插件时,界面上会出现更多的菜单;反之,当插件被卸载或者被停止时,则相应的菜单将消失掉。 立即下载

公司那个软件框架界面实在是美观的不明显,几个月之前就想自己写个框架用了,由于各种原因拖到现在。
计划是对FirstFloor的ModernUI进行改写—不会整个抄下来,而是需要什么就从里面找什么。
ModernUI我在大四的时候就稍微看了下,但都过了差不多,别说WPF,就是较为熟悉的C#,因为许久不用,感觉都忘得差不多了。我想说的是笔记很重要。。
1.

mui:ModernWindow x:Class="FirstFloor.ModernUI.App.MainWindow"

ModernWindow不是已经有implementation class了吗,为何还要个x:Class呢?原来,mui:ModernWindow在xaml文件中代表的就是一个ModernWindow类的对象,x:Class指向的类是ModernWindow的一个子类,这样的设计估计是为了让我们避免去修改父类,使程序编写更加自由。

2.关于可空类型
3.看来DPIAwareWindow.cs,下面这句看不懂:

this.dpiInfo = new DpiInformation(96D * matrix.M11, 96D * matrix.M22);

查了下资料,原来是计算DPI,所谓的设备无关单位可能不准,详情看这里。
快23:00了,今天先这样。

ModernUI 实例工程 基于FirstFloor.ModernUI的免费WPF界面框架,演示了如何自定义界面字体实现。该框架界面简洁明快,易于二次开发,可开发出靓丽的应用软件。 立即下载

相关推荐

别再花钱买插件了!手把手教你实现UE5运行时动态导入FBX模型(附完整源码解析)

本文详细解析了UE5运行时动态导入FBX模型的全过程,从FBX SDK集成配置到核心解析流程,再到引擎资源转换和性能优化。通过多线程加载架构和内存优化技巧,开发者可以高效实现动态模型导入,避免购买昂贵插件。文章还提供了完整源码解析和高级功能扩展,帮助开发者深入理解UE5的底层资源管理机制。

weixin_27033895的博客 377

WPF界面美化(整体作用到控件),一步步教你使用FirstFloor.ModernUI

开发工具:VS2015 1、获取相关DLL(通过NuGet或者GitHub上下载的源码中获得),并在项目中添加引用 FirstFloor.ModernUI.dll Microsoft.Windows.Shell.dll UIShell.OSGi(这个是我运行程序时报的错误"未能加载文件或程序集",然后在NuGet上下载得到的) 2、在.xaml文件中将MainWindow转为Mui....

qq_42063091的博客 7082

Nginx国密HTTPS实战:SM2双证书部署与TongSuo编译指南

HTTPS作为保障网络通信安全的基石,其核心在于SSL/TLS协议与公钥基础设施(PKI)。它通过非对称加密实现身份认证与密钥交换,再结合对称加密确保数据传输的机密性与完整性。在金融、政务等对自主可控有严格要求的领域,采用符合国家密码管理局标准的国密算法(SM2/SM3/SM4)替代国际通用算法(如RSA/SHA-256/AES),已成为满足安全合规要求的关键技术路径。国密SSL不仅是一套算法替换,更涉及从底层密码库到上层应用服务的完整技术栈改造。其核心价值在于实现密码技术的自主可控,提升特定场景下的安全防

weixin_29323365的博客 498

初识Modern UI for WPF

最近在查看WPF的相关资料,发现一个比较喜欢的框架:Modern UI for WPF。Windows风格,自带MVVM框架。

Chan 1万+

envi反演水质参数_遥感水质反演之反演模型

水质反演的框架图此为反演模型的章节第一部分,统计学基础:概率论、矩阵和数理统计的知识统计学知识框架# 1 基本统计概念知识在于应用,而非记忆!我们都是在样本的层面去操作数据的,以达到对总体性质的估计和推断,拿到一组数据首先进行基本的统计描述,常用的有:样本均值: 样本方差(调整方差)不是除以n,而是n-1, 标准差为样本方差开方即可皮尔逊积矩相关系数(简称相关系数): 相关系数范围在[-1,...

weixin_35275922的博客 3229

OI 生涯回忆录 《Pilgrimage》

前言 于 NOI2020 后写下本文。 本文简单提及了在写作时尚能回忆起来的,在我的 OI 生涯中对我的影响重大的人、事、比赛等。 写作本文,旨在在回忆允许的范围内,对 OI 生涯进行一定程度上的梳理,总结。 开端 入门 我最早接触计算机程序设计,是在小学。 那时候,我的数学成绩不错,就被老师推荐去学习编程。 就这样,我在局前街小学的何静老师的指导下,走上了编程的道路。 小学时的编程,与其说是 “竞赛” ,不如说是 “兴趣班” 。 当时,包括我在内,很多小孩子天性是浮躁的。支撑我对着无聊的代码学下去的,并不

cz_xuyixuan的博客 1万+

WPF 杂谈——入门介绍

对于WPF的技术笔者是又爱又恨。现在WPF的市场并不是很锦气。如果以WPF来吃饭的话,只怕会饿死在街头。同时现在向面WEB开发更是如火冲天。所以如果是新生的话,最好不要以WPF为主。做为选择性来学习一下还是可以的。 WPF项目 在VS开发工具里面对于WPF应用相关的项目类型有三种。本来在笔者看来他可能会单独存在一个地方,后来想想也对,WPF也算是Window开发吧。那么WPF的三种项目类型都在...

weixin_30417487的博客 143

从FER2013到AffectNet:表情识别数据集十年演进史与你的项目选型攻略

本文回顾了从FER2013到AffectNet等主流人脸表情识别数据集的十年演进历程,详细分析了各数据集的特点、适用场景及技术突破。针对不同项目需求,提供了从移动端应用到高精度研究的选型策略,特别强调AffectNet在现代FER项目中的核心价值,并给出混合数据集构建的实战方案。

weixin_26808439的博客 522

关于app store distribution出现的'armv7'与最小版本'3.0'不兼容的问题

前几天发布一个app到app store,象往常一样的设置,最低版本是3.0.但distribution的时候,却报错了,错误如下: This Bundle is invalid. The key UIRequiredDeviceCapabilities contains value 'armv7' which is incompatible with the  MinimumOSVersion

我的地盘 3066

IDEA出现闪退或打不开的解决方法

本身项目比较大,为了打开这个软件,可调节IDEA中安装的bin目录下有个。打开IDEA的时候过一会便闪退,可以再IDEA的右下角看到如下提示。(如果没有该提示,软件右下角也会有个红色感叹号,点开查看原因即可)闪退的多数原因大致是out of memory,内存溢出。查看任务管理器中的进程:(发现内存随时有溢出的情况)但也需要注意,该参数并不是越大越好,适中即可。只有个别原因是需要管理员权限就可执行!可以尽量减少软件的启动。

码农研究僧的博客 5944

物理AI:连接数字智能与物理世界的下一代人工智能范式

物理AI正在推动人工智能从纯数字领域向物理世界扩展,实现比特到原子的智能跃迁。与传统AI相比,物理AI具有三大核心差异:1)在物理环境中运行;2)处理多模态传感器输入;3)产生可改变物理状态的输出。其技术栈包含感知层(多模态融合)、决策层(边缘计算)、执行层(运动控制)和连接层(5G/6G通信)。关键技术挑战包括:实时多传感器融合、物理约束下的决策规划、以及高精度执行控制。物理AI的发展面临实时性保障、安全验证等核心挑战,但其在机器人、自动驾驶等领域的应用潜力巨大,正成为智能技术落地的关键突破口。

fudaihb的博客 1712

Modern UI for WPF核心组件深度解析:ModernWindow、ModernFrame与导航系统

Modern UI for WPF(MUI)是一个将传统WPF应用程序转换为现代化UI界面的强大框架。通过其核心组件ModernWindow、ModernFrame和导航系统的巧妙设计,开发者能够快速构建具有现代风格的应用程序。本文将深入解析这三个核心组件的工作原理和实际应用,帮助你掌握构建现代化WPF应用的关键技术。 ## 一、ModernWindow:现代化窗口的基础 ModernWind

gitblog_00528的博客 734

萤石云cs刷机解绑固件

萤石CS-C2C-32WFR刷机包,萤石CS-C6TC刷机包,萤石CS-C6H刷机包,萤石猫眼产品等等。萤石云摄像头固件修改,绑定手机号解绑,更换序列号教程。

海康威视技术支持 2万+

Modern UI for WPF 开源项目(2):我的第一个Modern UI App

1.获取最新版本的modern UI for WPF 2.打开vs并创建一个新的WPF应用程序名为:MuiTest 3.添加FirstFloor.ModernUI.dll 4.定义ModernWindow继承于MainWindow 打开MainWindows.xaml,添加ModernUI 的 xmlns 名称空间和使用mui来替换Window标签,如下: <mui:Moder...

weixin_30765319的博客 491

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

玩转ADB命令(ADB命令使用大全)

此文章内容整合自网络,欢迎转载。 我相信做Android开发的朋友都用过ADB命令,但是也只是限于安装应用push文件和设备重启相关,根深的也不知道了,其实我们完全可以了解多一点,有一些不常用的场景我们至少应该知道它可以做到,比如,我们知道adb install 却不知道adb shell am start。前者是用来安装软件,后者用来打开软件,后者的一个使用场景让我对他重视:公司定制Andro...

qq_43358922的博客 925

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Modern UI for WPF 开源项目(5):定义logo

一个ModernWindow的菜单栏包含了一个自定义的窗体logo区域。 一个窗体Logo通过特定的ModernWindow.LogoData属性来设置。这个属性是一个几何学类型,支持Path.Data mini-language。这个路径形状显示此logo具有24*24像素的大小。任何路径数据会被调整成这个大小。 下面是代码片段,定义了一个笑脸的Logo。这个路径数据已经从Modern ...

weixin_30216561的博客 220

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Modern UI for WPF项目模板使用教程:快速创建ModernUI应用的最佳实践

想要为你的WPF应用程序添加现代化的外观和用户体验吗?Modern UI for WPF(简称MUI)是一个强大的开源框架,它提供了一套完整的控件和样式,能够将传统的WPF应用程序转变为具有现代化外观的应用程序。本文将为你详细介绍如何使用Modern UI for WPF项目模板快速创建专业级的ModernUI应用程序,并分享一些最佳实践技巧。 ## 🚀 Modern UI for WPF项目

gitblog_00725的博客 723

Invalid binary的那些事

自2015年2月以来,苹果就已经强制让app支持64位了,所以相信很多童鞋在上传老版应用时,都遇见过构建版本中无版本可选的问题,这时候你点击iTunes connect上的预发布就会发现苹果告诉你你的二进制文件无效,这也就是我们以前常说的Invalid binary。          上网搜索的话会发现网上晒出了好多Invalid binary的解决法案,总结一下最靠谱的就是等待苹果的答复邮件

流氓不会留盲 1135

[汇]编译错误汇总

1、"std::ios_base::Init::~Init()", referenced from 出现这样的编译问题,是需要再加进libstdc++.dylib和libstdc++.6.dylib(为6.1使用,xcode5以后默认complier也可以编译通过) 2、apple Mach-o Linker error通常是因为compile source中有相同的.m文件 ...

1952

Modern UI for WPF 开源项目(4):使用预定义的页面布局

Modern UI for WPF实质就是使用了一套预先义的页面布局。一个Modern UI 页面是一个继承于control的用户控件,用于在Modern Window的内容区展示内容。页面常在Modern Window 菜单中通过使用ModernWindow.MenuLinkGroups属性来引用。本篇将介绍各类布局并展示如何使用它们。 提示:描述页面布局作为visual studio 201...

weixin_30621959的博客 280

Initialize failed: invalid dom.——带你深入因操作dom不当带来的错误

浏览器控制台报错,初始化失败,不合法的dom(Initialize failed: invalid dom.) 此类错误的原因通常是因为试图操作一个未就绪的dom(或未被创建,或未完全加载等等)。

不经一翻彻骨寒,怎得梅花扑鼻香 10万+

移植编译bcm sdk6.4.8 过程-平台arm-linux cortex-a9双核,系xilinx soc

技术积累,移植编译bcm sdk6.4.8 过程记录 北京华环电子:任晓亮 2015-10-20                                                                                              一句话总结:代码都是人写的,不试试怎么知道不行 目标平台:BCM-SDK-6.4.8           

ren1335654481的博客 4168

Linux 内核编译——瞎编译导致的问题

最近买了itop-4412 的板子 准被从内核移植  驱动编写  应用编程重新走一遍,刚开始很多问题没有搞懂,导致下面一些问题,后面会整理从0编译的文档Makefile:506: arch//Makefile: No such file or directorymake: *** No rule to make target 'arch//Makefile'.  Stop.ARCH?= $(SUB...

笑傲江湖 2万+
上一篇: 平面坐标系之间点坐标的换算
下一篇: KEIL提示“No target connected”的解决方法(转载)
DOCAICSD
博客等级 码龄15年 4粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值