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

HEFrame.WpfUI 控件库

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

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

📚 目录

📋 简介

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

✨ 特性

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

📥 安装与引用

  1. 克隆仓库

    bash 复制代码
    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 文件中添加以下资源字典:

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

2. 添加命名空间

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

xml 复制代码
xmlns:ui="clr-namespace:HEFrame.Styles.Controls;assembly=HEFrame.Styles"

3. 使用控件

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

xml 复制代码
<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:加载状态显示的文本
xml 复制代码
<!-- 基本用法 -->
<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:是否选中
xml 复制代码
<ui:HEToggleButton ThemeType="Light" IsChecked="{Binding IsActive}" />
3. HERadioButton
xml 复制代码
<ui:HERadioButton Content="选项1" GroupName="Options" IsChecked="True" />
<ui:HERadioButton Content="选项2" GroupName="Options" />
4. HECheckBox
xml 复制代码
<ui:HECheckBox Content="选择我" IsChecked="{Binding IsSelected}" />

输入控件

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

列表控件

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

滑块控件

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

进度条控件

11. HEProgressBar
xml 复制代码
<ui:HEProgressBar Value="{Binding Progress}" Maximum="100" />

选项卡控件

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

示例:

xml 复制代码
<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)
xml 复制代码
<ui:HEExpanderMenu Header="系统设置" 
                   MenuItems="{Binding MenuItems}" 
                   MenuSwitchCommand="{Binding PageSwitchCommand}" 
                   ThemeType="Light" />
14. HEContextMenu
xml 复制代码
<TextBlock Text="右键点击我">
    <TextBlock.ContextMenu>
        <ui:HEContextMenu>
            <MenuItem Header="复制" Command="{Binding CopyCommand}"/>
            <MenuItem Header="粘贴" Command="{Binding PasteCommand}"/>
        </ui:HEContextMenu>
    </TextBlock.ContextMenu>
</TextBlock>

提示控件

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

控件

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

消息卡片控件

18. HEMessageCard
xml 复制代码
<ui:HEMessageCardHost ShowDirection="FromTop" />

<!-- 在代码中使用 -->
HEMessageService.SendMessage("操作成功", MessageType.Success, "GlobalMessageToken");

数据控件

19. HEDataGrid
xml 复制代码
<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:加载提示文本
xml 复制代码
<ui:HELoadingAnimation AnimationType="CircleArrow" 
                       IsActive="{Binding IsLoading}" 
                       LoadingContent="正在加载数据..." />

过渡动画控件

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

日期控件

22. HEDatePicker
xml 复制代码
<ui:HEDatePicker SelectedDate="{Binding SelectedDate}" />
23. HECalendar
xml 复制代码
<ui:HECalendar SelectedDate="{Binding SelectedDate}" 
               DisplayDate="{Binding DisplayDate}" 
               SelectionMode="SingleDate" />

🎨 主题定制

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

切换亮色/暗色主题

xml 复制代码
<!-- 亮色主题 -->
<ResourceDictionary Source="pack://application:,,,/HEFrame.Styles;component/HEStyles/Default/LightTheme.xaml" />

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

自定义主题色

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

xml 复制代码
<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>
相关推荐
万物得其道者成13 小时前
UI UX Pro Max: AI 驱动的设计系统生成引擎深度解析
人工智能·ui·ux
Ly.Leo18 小时前
时序预测开源项目TimeMachine的布署教程
深度学习·神经网络·ubuntu·开源
cjp56020 小时前
020.WPF MVVM数据绑定底层原理类封装
wpf
SeaTunnel20 小时前
Apache SeaTunnel MySQL CDC 支持按时间启动吗?
大数据·数据库·mysql·开源·apache·seatunnel
FIT2CLOUD飞致云21 小时前
在线地图交互优化,查询组件选项值支持过滤条件,DataEase开源BI工具v2.10.19 LTS版本发布
开源·数据可视化·dataease·bi·数据大屏
血色橄榄枝21 小时前
01 Flutter for OpenHarmony
flutter·开源·鸿蒙
黑夜中的潜行者21 小时前
构建高性能 WPF 大图浏览器:TiledViewer 技术解密
性能优化·c#·.net·wpf·图形渲染
Kitfox AI1 天前
【100% AI编程一】KitfoxPay:让 NewAPI 无缝接入 Jeepay 的开源支付适配网关
开源·ai编程·oneapi·newapi·jeepay
万岳软件开发小城1 天前
企业级项目实录:在线教育系统源码如何支撑考试答题小程序开发
开源·源码·在线教育系统源码·教育软件开发·考试刷题软件开发·答题考试系统源码·教育培训小程序开发
edisao1 天前
【开源】轻量级 LLM 文本质检工具:精准识别核心概念缺失,支持动态别名 + 反馈闭环
大数据·开发语言·人工智能·经验分享·gpt·架构·开源