QianToolsUI 1.0.3
See the version list below for details.
dotnet add package QianToolsUI --version 1.0.3
NuGet\Install-Package QianToolsUI -Version 1.0.3
<PackageReference Include="QianToolsUI" Version="1.0.3" />
<PackageVersion Include="QianToolsUI" Version="1.0.3" />
<PackageReference Include="QianToolsUI" />
paket add QianToolsUI --version 1.0.3
#r "nuget: QianToolsUI, 1.0.3"
#:package QianToolsUI@1.0.3
#addin nuget:?package=QianToolsUI&version=1.0.3
#tool nuget:?package=QianToolsUI&version=1.0.3
QianToolsUI
WPF 现代 UI 控件库和 MVVM 工具集,面向工业自动化 HMI/SCADA 场景。
🎨 主题
| 主题 | 风格 | 适用场景 |
|---|---|---|
| Light | 知乎深蓝 #2254F4,现代明亮 | 通用桌面应用 |
| Dark | 暗色护眼 | 编码工具,夜间使用 |
| Industrial | 工业灰蓝,钢蓝配色 | 工控上位机 HMI/SCADA |
| IndustrialDark | 深蓝黑底,钢蓝强调 | 监控大屏,暗房环境 |
ThemeService.LoadTheme("Industrial"); // 运行时一键切换
📦 安装
dotnet add package QianToolsUI.Controls
🧩 控件清单
自定义控件(25 个)
输入类
| 控件 | 说明 | 用法 |
|---|---|---|
| WatermarkTextBox | 水印文本框 | <ctrl:WatermarkTextBox Watermark="请输入..." /> |
| NumericUpDown | 数值调节 | <ctrl:NumericUpDown Value="25" Minimum="0" Maximum="100" /> |
| SearchBar | 搜索框 | <ctrl:SearchBar Placeholder="搜索..." /> |
| IpTextBox | IP 地址输入 | <ctrl:IpTextBox IpAddress="192.168.1.1" /> |
| PinBox | 验证码/PIN 输入 | <ctrl:PinBox Length="6" IsPrivacy="True" /> |
| TimePicker | 时间选择 | <ctrl:TimePicker /> |
| ColorPicker | 颜色选择器 | <ctrl:ColorPicker SelectedColor="Blue" /> |
状态指示
| 控件 | 说明 | 用法 |
|---|---|---|
| StatusIndicator | I/O 点位指示器 | <ctrl:StatusIndicator Shape="Circle" State="On" /> |
| Badge | 角标 | <ctrl:Badge BadgeText="99+" BadgeType="Danger">... |
| Tag | 标签/Chip | <ctrl:Tag Content="运行中" TagType="Success" Closable="True" /> |
| Shield | 徽章 | <ctrl:Shield Content="故障" ShieldType="Danger" Count="3" /> |
进度与仪表
| 控件 | 说明 | 用法 |
|---|---|---|
| CircleProgressBar | 环形进度(Ring/Stripe) | <ctrl:CircleProgressBar Value="75" StrokeThickness="10" /> |
| WaveProgressBar | 波浪液位 | <ctrl:WaveProgressBar Value="75" /> |
| DigitalDisplay | LED 数码管 | <ctrl:DigitalDisplay Value="387.2" Unit="V" Label="A相电压" /> |
| StepBar | 步骤条 | <ctrl:StepBar ActiveIndex="2"> |
容器
| 控件 | 说明 | 用法 |
|---|---|---|
| Card | 卡片容器 | <ctrl:Card Title="标题">... |
| GroupBox | 分组面板 | <ctrl:GroupBox Header="设备控制">... |
| Expander | 折叠面板 | <ctrl:Expander Header="参数设置">... |
| FormItem | 表单项(Left/Top + 验证) | <ctrl:FormItem Header="标签" LabelPosition="Top">... |
| DashboardPanel | 仪表盘面板 | <ctrl:DashboardPanel Header="📊 监控">... |
反馈
| 控件 | 说明 | 用法 |
|---|---|---|
| Growl | 全局通知 | Growl.Success("操作完成") |
| QianMessageBox | 模态弹窗 | QianMessageBox.Info("提示") |
| Notification | 顶部通知条 | Notification.Show("消息", NotificationType.Success) |
| Empty | 空状态占位 | <ctrl:Empty Description="暂无数据" /> |
数据
| 控件 | 说明 | 用法 |
|---|---|---|
| Transfer | 穿梭框 | <ctrl:Transfer ItemsSource="{Binding All}" SelectedItems="{Binding Sel}" /> |
| Pagination | 分页 | <ctrl:Pagination Total="200" PageSize="20" CurrentPage="3" /> |
标准控件样式(15 类)
Button(7变体) / TextBox / PasswordBox / ComboBox / CheckBox(Switch) / RadioButton / ProgressBar / Slider / TabControl / DataGrid / ListBox / ListView / TreeView / ScrollBar / Calendar(DatePicker) / ContextMenu / ToolTip
核心库(QianToolsUI)
MVVM 基础:ObservableObject / RelayCommand / AsyncRelayCommand
值转换器 / 附加行为 / 标记扩展
多语言:LocalizationService.Switch("en") / {Loc KeyName} 标记扩展
🌐 多语言
支持 中文 / English / 日本語:
LocalizationService.Switch("en"); // 切换到英文
string label = LocalizationService.Get("Common.OK"); // 获取本地化字符串
<TextBlock Text="{markup:Loc Common.Search}" />
🚀 代码示例
// 主题切换
ThemeService.LoadDark();
// 通知
Growl.Success("操作成功");
Notification.Show("连接失败", NotificationType.Error);
// 多语言
LocalizationService.Switch("en");
<ctrl:StatusIndicator Shape="Square" InteractionMode="Toggle"
Label="电机 M1" Address="Q0.0" />
<ctrl:PinBox Length="6" IsPrivacy="True" />
<ctrl:FormItem Header="设备名称" IsRequired="True"
LabelPosition="Top" Description="PLC 标识">
<ctrl:WatermarkTextBox Watermark="请输入" />
</ctrl:FormItem>
<ctrl:DashboardPanel Header="📊 电气参数">
<WrapPanel>
<ctrl:CircleProgressBar Value="72" StrokeThickness="10"
Foreground="{DynamicResource Brush.Selection}" />
<ctrl:DigitalDisplay Value="387.2" Unit="V" Label="电压" />
<ctrl:WaveProgressBar Value="65" />
</WrapPanel>
</ctrl:DashboardPanel>
<ctrl:Transfer ItemsSource="{Binding AllDevices}"
SelectedItems="{Binding SelectedDevices}"
HeaderLeft="可用设备" HeaderRight="已选设备"
DisplayMemberPath="Name" />
<ctrl:StepBar ActiveIndex="2">
<ctrl:StepBarItem Content="原料准备" />
<ctrl:StepBarItem Content="加工处理" />
<ctrl:StepBarItem Content="质量检测" />
</ctrl:StepBar>
📊 项目结构
QianToolsUI/
├── src/
│ ├── QianToolsUI/ # 核心库 (net8.0/9.0/10.0)
│ │ ├── MVVM/ # ObservableObject, RelayCommand
│ │ ├── Converters/ # 值转换器
│ │ ├── Behaviors/ # 附加行为
│ │ ├── Markup/ # LocExtension, EnumBinding
│ │ ├── Services/ # LocalizationService
│ │ └── Langs/ # 语言包 (zh-CN/en/ja)
│ ├── QianToolsUI.Controls/ # 控件库 (net8.0)
│ │ ├── Controls/ # 25 个自定义控件
│ │ ├── Themes/ # 4 套主题 + 15 类样式
│ │ ├── Converters/ # 控件专用转换器
│ │ └── Theming/ # ThemeService
│ └── QianToolsUI.Demo/ # 演示应用
│ ├── Views/ # 9 个展示页面
│ └── ViewModels/
🔧 集成
App.xaml
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/QianToolsUI.Controls;component/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
📄 许可
MIT License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows7.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows7.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on QianToolsUI:
| Package | Downloads |
|---|---|
|
QianToolsUI.Controls
Custom WPF controls with light/dark theme support — NumericUpDown, SearchBar, ColorPicker, Growl, MessageBox, Badge, and more. |
GitHub repositories
This package is not used by any popular GitHub repositories.