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
相关推荐
小满Autumn4 小时前
依赖注入设计模式速查手册
开发语言·c#·wpf·mvvm·依赖注入
Xin_ye100864 小时前
C# 零基础到精通教程 - WPF 专题三:高级控件与自定义控件
开发语言·c#·wpf
Xin_ye100867 小时前
C# 零基础到精通教程 - WPF 深度专题:自定义布局与性能优化
开发语言·c#·wpf
小满Autumn7 小时前
WPF 依赖属性速查手册
笔记·c#·wpf·上位机·mvvm
Xin_ye100867 小时前
C# 零基础到精通教程 - WPF 深度专题:3D 图形与视觉增强
开发语言·c#·wpf
加号31 天前
【WPF】 自定义 Image 控件实现图像缩放与平移
wpf
闪电悠米1 天前
黑马点评-分布式锁-02_simple_redis_lock_setnx
java·数据库·spring boot·redis·分布式·缓存·wpf
闪电悠米1 天前
黑马点评-分布式锁-03_lua_atomic_unlock
java·数据库·分布式·缓存·oracle·wpf·lua
多巴胺耐受2 天前
【WPF】炫酷的科技报警弹窗
科技·c#·wpf