# WPFNativeExample **Repository Path**: Zeros_Zhang/wpf_native_example ## Basic Information - **Project Name**: WPFNativeExample - **Description**: 展示WPF原生功能的示例项目,涵盖控件使用、数据绑定及界面设计技巧,助您快速掌握WPF开发核心。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-21 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WPF Native Example > **ℹ️ 说明:本文档使用 AI 辅助总结生成。** 本项目收集 WPF 原生控件的使用案例,为学习和参考提供便利。 如果你对 WPF 原生控件开发感兴趣,可以关注这个仓库。 > 编写示例的同时也记录一些关键性的笔记,不过未系统化在此不做分享。 --- ## 📁 项目结构 本解决方案包含以下项目: ### 1. MVVMExample MVVM 模式下的数据绑定实现,基于 `CommunityToolkit.MVVM` 框架。 **主要功能:** - 使用 `ObservableObject` 和 `[ObservableProperty]` 实现属性变更通知 - `ICommand` 命令绑定示例 - ViewModel 与 View 的数据绑定实践 --- ### 2. NativeWPF WPF 原生控件综合示例集合,包含多个独立子项目: #### 2.1 AdornerExample 装饰器(Adorner)模式示例。 **主要功能:** - 自定义装饰器的创建与使用 - 在控件上叠加视觉元素 - 拖拽调整控件大小 #### 2.2 DataGridExample `DataGrid` 控件数据展示示例。 **主要功能:** - 数据绑定与列定义 - 单元格编辑与验证 - 样式自定义 #### 2.3 ListViewExample `ListView` 控件使用示例。 **主要功能:** - 不同视图模式(List、Grid) - 数据模板定义 - 选择模式与事件处理 #### 2.4 OpacityAndOpacityMask 透明度和透明掩码效果示例。 **主要功能:** - `Opacity` 属性控制整体透明度 - `OpacityMask` 实现渐变透明效果 - 视觉特效实践 #### 2.5 RoutedEventExample 路由事件全面示例,包含三个功能演示: **Demo1: 普通事件 vs 路由事件** - 对比 CLR 事件和路由事件的传播差异 - 演示路由事件的隧道(Tunnel)和冒泡(Bubble)阶段 - 展示父元素如何集中处理子元素事件 **Demo2: 自定义控件路由事件** - 在自定义控件中定义路由事件 - 三种路由策略的实现:Bubble、Tunnel、Direct - 自定义 `RoutedPropertyChangingEventArgs` 事件参数 **Demo3: 静态类附加路由事件** - 使用静态类定义附加路由事件 - 实现 `LongPressed` 长按附加事件 - 支持 Style、XAML、CodeBehind 三种订阅方式 #### 2.6 TextBlockExample `TextBlock` 控件使用示例。 **主要功能:** - 文本格式化(粗体、斜体、下划线) - 内联元素(Run、Span、Hyperlink) - 文字换行与裁剪 #### 2.7 WPFNativeExample WPF 原生控件基础示例。 **主要功能:** - 基础控件使用 - 布局面板实践 - 样式和资源定义 --- ### 3. StatusTipExample 状态提示控件示例。 **主要功能:** - 状态栏提示信息显示 - 异步操作状态反馈 - 进度提示实现 --- ## 📝 代码风格 本项目遵循统一的 C# 代码风格规范,详见 [代码风格.md](./代码风格.md)。 **核心要点:** - 命名规范:类/属性/字段使用 PascalCase,局部变量使用 snake_case 加下划线前缀 - 代码组织:使用文件作用域命名空间(File-scoped namespace) - 注释风格:使用 `//!`、//-`、//?`、//x` 等特殊标记 - 语言特性:积极使用 C# 12 新特性(集合表达式、模式匹配等) - MVVM 架构:使用 CommunityToolkit.Mvvm 简化实现 --- ## 📄 许可证 本项目采用 [LICENSE.txt](./LICENSE.txt) 许可证。