WPF应用层框架介绍

WPF(Windows Presentation Foundation)相比 MFC,更强调:

  • MVVM
  • 数据绑定
  • 组件化
  • UI 与逻辑解耦

因此 WPF 的"应用层框架"比 MFC 丰富很多。

目前主流 WPF 框架主要围绕:

text 复制代码
MVVM
模块化
依赖注入
导航
事件总线
插件化

展开。


一、WPF 最主流的应用框架

1. Prism(最经典、最主流)

由微软 Patterns & Practices 推出,后来由社区维护。

这是:

企业级 WPF 最常见框架


Prism 核心功能

MVVM

提供:

  • BindableBase
  • DelegateCommand
  • ViewModelLocator

模块化

支持:

text 复制代码
主程序
  ├── 模块A
  ├── 模块B
  └── 模块C

动态加载 DLL。

非常适合:

  • 工业软件
  • 平台软件
  • 插件系统

Region 区域导航

非常经典:

xml 复制代码
<ContentControl prism:RegionManager.RegionName="MainRegion"/>

然后:

cpp 复制代码
_regionManager.RequestNavigate("MainRegion", "HomeView");

实现页面切换。


EventAggregator

类似消息总线:

cpp 复制代码
_eventAggregator.GetEvent<TestEvent>().Publish();

模块间解耦。


DI 容器

支持:

  • Unity
  • DryIoc
  • Autofac

Prism 适合:

  • 大型桌面软件
  • 工业平台
  • 插件化系统
  • 多模块系统

二、MVVM Light(经典轻量级)

以前特别流行。

作者:

Laurent Bugnion

特点:

  • 轻量
  • 学习简单
  • MVVM 入门经典

核心:

  • ViewModelBase
  • RelayCommand
  • Messenger

现在状态

热度下降。

因为:

  • Prism 更强
  • CommunityToolkit.Mvvm 更现代

但很多老项目仍在用。


三、CommunityToolkit.Mvvm(现在非常热门)

微软官方社区工具包。

官方项目:

CommunityToolkit.Mvvm


特点

极简

代码非常少:

cpp 复制代码
[ObservableProperty]
private string name;

自动生成:

cpp 复制代码
public string Name { get; set; }

Source Generator

使用:

  • Roslyn 源生成器

性能很好。


Command 自动生成

cpp 复制代码
[RelayCommand]
void Save()
{
}

自动生成 ICommand。


适合

  • 新项目
  • 中小项目
  • 现代 .NET

四、Caliburn.Micro

非常有特点的 WPF 框架。

核心思想:

Convention over Configuration

即:

"约定优于配置"


特点

自动绑定:

text 复制代码
Button Name="Save"
↓
自动绑定到
Save() 方法

减少大量 XAML。


优点

开发效率高。


缺点

隐式规则较多:

  • 大项目维护难
  • 新人不容易理解

五、ReactiveUI

现代响应式框架。

核心:

text 复制代码
Reactive Programming

结合:


特点

数据流驱动:

cpp 复制代码
this.WhenAnyValue(x => x.Name)

适合:

  • 高频状态变化
  • 实时系统
  • 复杂异步

缺点

学习曲线较高。


六、Stylet

轻量 MVVM 框架。

特点:

  • 比 Caliburn 简洁
  • 比 Prism 轻

适合:

  • 中小项目

七、Catel

企业级 MVVM 框架。

功能非常多:

  • MVVM
  • Validation
  • IoC
  • Messaging

但现在热度一般。


八、AvalonDock(布局框架)

这不是完整应用框架。

但:

WPF IDE 风格布局几乎都用它

项目:

AvalonDock GitHub

支持:

  • Dock
  • 浮动窗口
  • VS 风格布局

很多工业软件会:

text 复制代码
Prism + AvalonDock

组合。


九、MahApps.Metro(UI 风格框架)

现代 Metro 风格 UI。

项目:

MahApps.Metro

提供:

  • Metro 风格窗口
  • Dialog
  • Theme
  • 控件美化

常搭配:

text 复制代码
Prism + MahApps.Metro

十、MaterialDesignInXaml

Material Design 风格。

项目:

MaterialDesignInXamlToolkit

效果:

  • Google Material UI

现在非常流行。


十一、工业软件常见组合


方案1:传统大型工业软件

text 复制代码
Prism
+ DryIoc
+ AvalonDock
+ MahApps

特点:

  • 插件化
  • IDE风格
  • 多窗口

方案2:现代轻量项目

text 复制代码
CommunityToolkit.Mvvm
+ MaterialDesign

特点:

  • 开发快
  • 代码少

方案3:高实时系统

text 复制代码
ReactiveUI

适合:

  • 实时数据
  • 高频刷新

十二、WPF 框架核心思想

WPF 领域最重要的是:


1. MVVM

核心:

text 复制代码
View
ViewModel
Model

2. 数据绑定

WPF 最大优势:

xml 复制代码
<TextBox Text="{Binding Name}"/>

3. ICommand

替代传统按钮回调:

xml 复制代码
<Button Command="{Binding SaveCommand}"/>

4. Dependency Injection

大型项目必备。


5. Event Bus

模块解耦。


十三、现在 WPF 的行业定位

WPF 目前仍大量用于:

  • 工业自动化
  • 上位机
  • 医疗设备
  • 金融终端
  • 半导体设备
  • 测试平台

因为:

  • Windows生态强
  • UI能力强
  • GPU硬件加速
  • 开发效率高

十四、WPF vs Qt vs MFC

特性 WPF Qt MFC
UI现代化
MVVM 原生支持 一般
数据绑定 非常强 一般 很弱
Win32集成 一般 最强
跨平台
工业软件 很多 非常多 老项目多
学习难度 中高

十五、当前最推荐路线

如果现在新做 WPF 项目:

推荐:

text 复制代码
CommunityToolkit.Mvvm
+ MaterialDesign

大型项目:

text 复制代码
Prism
+ DryIoc
+ AvalonDock
相关推荐
闲云自留地9 小时前
云平台存储管理员:Cinder 创建挂载卷 + Swift 分布式存储原理
分布式·wpf·swift
敲代码的嘎仔1 天前
从集群锁失效到异步领券:我用分布式锁 + Redisson + MQ 把领券接口 RT 从 200ms 压到 15ms
java·数据库·redis·分布式·缓存·ai·wpf
闲云自留地2 天前
OpenStack 的身份管家:Keystone 令牌、RBAC 权限模型拆解
wpf·openstack
FuckPatience4 天前
WPF 窗体唤醒,判断是否已存在,存在则弹出
wpf
程序员清风4 天前
从单体应用到微服务:后端系统拆分的基本方法
微服务·架构·wpf
FuckPatience5 天前
WPF 改变根据某一列条件改变行样式
wpf
dalong105 天前
WPF:DataGrid样式
wpf
samble7 天前
从零搭建工业控制系统(二十二):线程安全与并发控制
c#·wpf·并发·mvvm·线程安全·工业控制
姜穆澜7 天前
OneID 从 0 到 1 完整生产案例(三)
大数据·wpf
dalong107 天前
WPF:MVVM 示例
大数据·wpf