当前位置: 首页 > news >正文

HEFrame.WpfUI :一个现代化的 开源 WPF UI库

HEFrame.WpfUI 控件库

HEFrame Logo

现代化、美观的 WPF UI 控件库

GitHub链接:HEFrame.WpfUI,欢迎各位Star

📚 目录

  • 简介
  • 特性
  • 安装与引用
  • 快速开始
  • 控件列表
    • 按钮控件
    • 输入控件
    • 列表控件
    • 滑块控件
    • 进度条控件
    • 选项卡控件
    • 菜单控件
    • 提示控件
    • 控件
    • 消息卡片控件
    • 数据控件
    • 加载动画控件
    • 过渡动画控件
    • 日期控件
  • 主题定制

📋 简介

HEFrame.WpfUI 是一个现代化的 WPF UI 控件库,提供了丰富的自定义控件和样式,帮助开发者快速构建美观、专业的桌面应用程序。该控件库遵循现代设计理念,支持源码、展示主题切换、动画效果,并且完全兼容 MVVM 设计模式。
在这里插入图片描述
在这里插入图片描述

✨ 特性

  • 丰富的控件集合:包含 30+ 种常用控件,满足各类应用场景
  • 现代化设计:遵循扁平化、简约的设计风格
  • 主题定制:支持亮色/暗色主题切换,可自定义主题色
  • 动画效果:内置多种过渡动画和加载动画
  • MVVM 友好:所有控件均支持数据绑定和命令绑定
  • 易于集成:简单的引用方式,快速集成到现有项目

📥 安装与引用

  1. 克隆仓库

    git clone https://github.com/he-ze-xi/HEFrame.WpfUI
    
  2. 打开Visual Studio编译项目代码

  3. 在编译完的bin目录找到HEFrame.Core.dllHEFrame.Styles.dll,在你的 WPF 项目中添加对这两个 DLL 的引用

🚀 快速开始

1. 添加资源字典

在你的 App.xaml 文件中添加以下资源字典:

    <Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="pack://application:,,,/HEFrame.Styles;component/Themes/Generic.xaml" /></ResourceDictionary.MergedDictionaries></ResourceDictionary></Application.Resources>

2. 添加命名空间

在 XAML 文件中添加以下命名空间:

xmlns:ui="clr-namespace:HEFrame.Styles.Controls;assembly=HEFrame.Styles"

3. 使用控件

现在你可以在 XAML 中使用 HEFrame 控件了:

<ui:HEButton Content="点击我" ButtonType="Primary" />
<ui:HETextBox Grid.Row="3" Margin="15,10" ThemeType="Light" WaterMark="我是水印文字" />
...

Demo界面点击右上角按钮可以看到每个xaml页面的引用代码示例,使用者可以更直观看到每个控件的用法:
在这里插入图片描述

📦 控件列表

按钮控件

1. HEButton
  • ButtonType:按钮类型(Primary, Success, Caution, Dranger, Dark, Light, Custom)
  • IsLoading:是否显示加载状态
  • LoadingContent:加载状态显示的文本
<!-- 基本用法 -->
<ui:HEButton Content="主要按钮" ButtonType="Primary" />
<ui:HEButton Content="成功按钮" ButtonType="Success" />
<ui:HEButton Content="警告按钮" ButtonType="Caution" />
<ui:HEButton Content="危险按钮" ButtonType="Dranger" />
<ui:HEButton Content="深色按钮" ButtonType="Dark" />
<ui:HEButton Content="浅色按钮" ButtonType="Light" /><!-- 禁用状态 -->
<ui:HEButton Content="禁用按钮" ButtonType="Primary" IsEnabled="False" /><!-- 加载状态 -->
<ui:HEButton Content="加载按钮" ButtonType="Primary" IsLoading="{Binding IsLoading}" LoadingContent="加载中..." /><!-- 自定义样式 -->
<ui:HEButton Content="自定义按钮" ButtonType="Custom" Background="Black" Foreground="White" BorderBrush="{DynamicResource PrimaryBackground}" BorderThickness="1" HoverBackground="{DynamicResource PrimaryMouseHover}" />
2. HEToggleButton
  • ThemeType:主题类型(Light, Dark)
  • IsChecked:是否选中
<ui:HEToggleButton ThemeType="Light" IsChecked="{Binding IsActive}" />
3. HERadioButton
<ui:HERadioButton Content="选项1" GroupName="Options" IsChecked="True" />
<ui:HERadioButton Content="选项2" GroupName="Options" />
4. HECheckBox
<ui:HECheckBox Content="选择我" IsChecked="{Binding IsSelected}" />

输入控件

5. HETextBox
<ui:HETextBox Watermark="请输入用户名" Text="{Binding Username}" />
6. HEPasswordBox
<ui:HEPasswordBox Watermark="请输入密码" Password="{Binding Password}" />
7. HEComboBox
<ui:HEComboBox ItemsSource="{Binding Options}" DisplayMemberPath="Name" SelectedValuePath="Id" SelectedValue="{Binding SelectedId}" />

列表控件

8. HEListView
<ui:HEListView ItemsSource="{Binding Items}"><ui:HEListView.ItemTemplate><DataTemplate><TextBlock Text="{Binding Name}" /></DataTemplate></ui:HEListView.ItemTemplate>
</ui:HEListView>
9. HEListBox
<ui:HEListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}"><ui:HEListBox.ItemTemplate><DataTemplate><TextBlock Text="{Binding Name}" /></DataTemplate></ui:HEListBox.ItemTemplate>
</ui:HEListBox>

滑块控件

10. HESlider
<ui:HESlider Minimum="0" Maximum="100" Value="{Binding SliderValue}" TickFrequency="10" IsSnapToTickEnabled="True" />

进度条控件

11. HEProgressBar
<ui:HEProgressBar Value="{Binding Progress}" Maximum="100" />

选项卡控件

12. HETabControl
  • ThemeType:主题类型(Light, Dark)
  • SelectionChangedCommand:选项卡切换命令

示例:

<ui:HETabControl ThemeType="Light" ItemsSource="{Binding TabItems}" SelectedIndex="{Binding SelectedIndex, Mode=TwoWay}" SelectionChangedCommand="{Binding SwitchPageCommand}"><ui:HETabControl.ItemTemplate><DataTemplate><TextBlock Text="{Binding Header}" /></DataTemplate></ui:HETabControl.ItemTemplate><ui:HETabControl.ContentTemplate><DataTemplate><ContentControl Content="{Binding Content}" /></DataTemplate></ui:HETabControl.ContentTemplate>
</ui:HETabControl>

菜单控件

13. HEExpanderMenu
  • Header:菜单标题
  • MenuItems:菜单项集合
  • MenuSwitchCommand:菜单切换命令
  • ThemeType:主题类型(Light, Dark)
<ui:HEExpanderMenu Header="系统设置" MenuItems="{Binding MenuItems}" MenuSwitchCommand="{Binding PageSwitchCommand}" ThemeType="Light" />
14. HEContextMenu
<TextBlock Text="右键点击我"><TextBlock.ContextMenu><ui:HEContextMenu><MenuItem Header="复制" Command="{Binding CopyCommand}"/><MenuItem Header="粘贴" Command="{Binding PasteCommand}"/></ui:HEContextMenu></TextBlock.ContextMenu>
</TextBlock>

提示控件

15. HEToolTip
<Button Content="鼠标悬停查看提示"><ui:HEToolTip.ToolTip><ui:HEToolTip Content="这是一个自定义工具提示" /></ui:HEToolTip.ToolTip>
</Button>

控件

16. HEGroupBox
<ui:HEGroupBox Header="基本信息"><StackPanel><ui:HETextBox Watermark="姓名" /><ui:HETextBox Watermark="年龄" /></StackPanel>
</ui:HEGroupBox>
17. HEExpander
<ui:HEExpander Header="详细信息"><StackPanel><TextBlock Text="这里是详细信息内容" /></StackPanel>
</ui:HEExpander>

消息卡片控件

18. HEMessageCard
<ui:HEMessageCardHost ShowDirection="FromTop" /><!-- 在代码中使用 -->
HEMessageService.SendMessage("操作成功", MessageType.Success, "GlobalMessageToken");

数据控件

19. HEDataGrid
<ui:HEDataGrid ItemsSource="{Binding DataList}" AutoGenerateColumns="False"><ui:HEDataGrid.Columns><DataGridTextColumn Header="姓名" Binding="{Binding Name}" /><DataGridTextColumn Header="年龄" Binding="{Binding Age}" /><DataGridCheckBoxColumn Header="是否激活" Binding="{Binding IsActive}" /></ui:HEDataGrid.Columns>
</ui:HEDataGrid>

加载动画控件

20. HELoadingAnimation
  • AnimationType:动画类型(Default, CircleArrow, CirclePoint, CircleLine, LinePoint)
  • IsActive:是否激活动画
  • LoadingContent:加载提示文本
<ui:HELoadingAnimation AnimationType="CircleArrow" IsActive="{Binding IsLoading}" LoadingContent="正在加载数据..." />

过渡动画控件

21. HETransitionAnimation
  • TransitionType:过渡类型(Fade, Slide, Zoom, Flip)
  • IsStartAnimation:是否启动动画
<ui:HETransitionAnimation TransitionType="{Binding TransitionType}" IsStartAnimation="true"><ContentControl Content="{Binding CurrentPage}" />
</ui:HETransitionAnimation>

日期控件

22. HEDatePicker
<ui:HEDatePicker SelectedDate="{Binding SelectedDate}" />
23. HECalendar
<ui:HECalendar SelectedDate="{Binding SelectedDate}" DisplayDate="{Binding DisplayDate}" SelectionMode="SingleDate" />

🎨 主题定制

HEFrame.WpfUI 支持主题定制,你可以通过修改资源字典来自定义主题。

切换亮色/暗色主题

<!-- 亮色主题 -->
<ResourceDictionary Source="pack://application:,,,/HEFrame.Styles;component/HEStyles/Default/LightTheme.xaml" /><!-- 暗色主题 -->
<ResourceDictionary Source="pack://application:,,,/HEFrame.Styles;component/HEStyles/Default/DarkTheme.xaml" />

自定义主题色

你可以在应用程序资源中覆盖默认颜色:

<Application.Resources><ResourceDictionary><!-- 自定义主题色 --><SolidColorBrush x:Key="PrimaryBackground" Color="#1890FF" /><SolidColorBrush x:Key="PrimaryMouseHover" Color="#40A9FF" /><SolidColorBrush x:Key="PrimaryMouseDown" Color="#096DD9" /><ResourceDictionary.MergedDictionaries><!-- 其他资源字典 --></ResourceDictionary.MergedDictionaries></ResourceDictionary>
</Application.Resources>
http://www.dtcms.com/a/430701.html

相关文章:

  • Stanford CS336 Lecture3 | Architectures, hyperparameters
  • NotoSansSC-Regular.otf介绍与下载
  • 顺丰物流网站建设策划书wordpress订阅者投稿
  • 自动生成手机网站wordpress 福利吧主题
  • 前端项目:智能问卷调研系统
  • 网站悬浮窗广告怎么做WordPress集成tipask
  • Ruby 安装 - Windows
  • OSPF报文概念及题目
  • 通信中间件 Fast DDS(三) :fastddsgen的安装与使用
  • Xcode上编译调试ffmpeg
  • Unity游戏基础-2(初识场景~项目构建)
  • 计算机网络第四章(4)——网络层《IPV6》
  • 陕西省建设厅网站首页官方网站下载zoom
  • 降低查询范围
  • 51——DS1302
  • 语校网500所里程碑:日本语言学校数据库的标准化与可追溯机制
  • wordpress 站长主题商城系统源码
  • docker快速使用yolov11
  • 鸿蒙NEXT SSAP连接与数据传输实战:轻松实现跨设备通信
  • 第10章 Docker
  • 【迭代】本地高性能c++对话系统e2e_voice
  • linux的进程和线程
  • 漏扫常见问题——口令类
  • 广州建设高端网站韶关手机网站建站
  • NetApp存储基本概念科普:物理层到逻辑层
  • 操作系统复习问题总结
  • 笔记(C++篇)—— Day 12(类的默认成员函数)
  • 牛客算法基础noob59 简写单词
  • CSS断点(Breakpoints)介绍(响应式设计中用于定义不同屏幕尺寸下应用不同样式的特定点)Tailwind断点
  • Flink SQL 查询 核心概念与实战指南