# WpfAdmin.HandyControlExt
**Repository Path**: wpfadmin/wa.handycontrolext
## Basic Information
- **Project Name**: WpfAdmin.HandyControlExt
- **Description**: No description available
- **Primary Language**: C#
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-06-09
- **Last Updated**: 2025-09-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# WpfAdmin.HandyControlExt
一个基于 HandyControl 的 WPF UI 扩展库,提供统一的主题系统(浅色/暗色)与常用业务控件/行为/附加属性,开箱即用地提升应用一致性与开发效率。
## 功能概览
- **主题系统**:浅色/暗色两套配色,集中于 `Themes/Theme.xaml` 管理
- **基础资源**:统一的颜色、画笔、字体、转换器
- **控件集**:`Breadcrumb`、`SidebarMenu`、`DialogTitleBar`、`SearchBox`、`NavScrollPanel` 等
- **行为/附加属性**:`TextBoxPopupBehavior`、`DatePickerAttach`、`WindowAttach`
- **主题切换**:`ThemeToggleButton` 控件与 `ThemeManager` 编程接口
## 环境要求
- **.NET**:`net10.0-windows10.0.19041`
- **WPF**:已启用
- **依赖**:`HandyControl (3.6.0-rc2)`
## 安装与引用
### 1) 添加项目引用
```xml
WinExe
net10.0-windows10.0.19041
true
```
### 2) 在 App.xaml 合并主题资源
```xml
```
**说明**:仅需合并 `Themes/Theme.xaml`,其余颜色、画笔、字体、样式会自动按顺序加载。
### 3) 使用控件示例
```xml
```
## 主题与外观
### 主题切换(控件)
```xml
```
### 主题切换(代码)
```csharp
using WpfAdmin.HandyControlExt.Controls;
// 切换到暗色
ThemeManager.SwitchTheme("Dark");
// 切换到浅色
ThemeManager.SwitchTheme("Light");
// 当前主题
string currentTheme = ThemeManager.CurrentTheme;
// 订阅变化
ThemeManager.ThemeChanged += (sender, e) => {
Console.WriteLine($"主题从 {e.OldTheme} 切换到 {e.NewTheme}");
};
```
### 资源说明
- **颜色**:`Themes/Basic/Colors/Colors.xaml` 与 `ColorsDark.xaml`
- **画笔**:`Themes/Basic/Brushes.xaml`
- **字体**:`Themes/Basic/Fonts.xaml`
- **转换器**:`Themes/Basic/Converters.xaml`
- **控件样式**:`Themes/Styles/*.xaml`
- **主题总入口**:`Themes/Theme.xaml`
更多细节可参考 `src/README_Theme.md`。
## 可用组件
- **控件**:`Breadcrumb`、`BreadcrumbItem`、`DialogTitleBar`、`NavScrollPanel`、`SearchBox`、`SidebarMenu`、`SidebarMenuItem`、`ThemeToggleButton`
- **行为**:`TextBoxPopupBehavior`
- **附加属性**:`DatePickerAttach`、`WindowAttach`
- **转换器**:`Boolean2BooleanReConverter`、`Boolean2VisibilityReConverter`、`String2BooleanConverter`、`String2VisibilityConverter`
## 构建与调试
- 目标框架:`net10.0-windows10.0.19041`
- 预构建步骤:项目包含 `Themes/XamlCombine.exe` 与 `Themes/Theme.txt`,在构建前会自动合并生成 `Themes/Theme.xaml`(由 `PreBuild` 目标触发)。
## 许可证
本项目采用 `MIT` 许可协议,详见根目录 `LICENSE`。