WPF-Controls

March 22, 2025 · View on GitHub

dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version dotnet-version

csharp-version IDE-version

nuget-version Github-build-status

关于

Star

Stargazers over time

开发文档

https://hebiangu.github.io/WPF-ControlBase-Docs/

推荐学习官方文档

https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls?view=windowsdesktop-8.0?wt.mc_id=MVP_380318

推荐查看在线源码

https://referencesource.microsoft.com/?wt.mc_id=MVP_380318

预览

案例

Release 下载地址 https://github.com/HeBianGu/WPF-ControlBase/releases

Above

qrcode

图片打不开?

演示视频

Blur

qrcode

图片打不开?

Chart

qrcode

图片打不开?

演示视频

Computer

qrcode

图片打不开?

演示视频

Counter

qrcode

图片打不开?

演示视频

Cross

qrcode

图片打不开?

Currency

qrcode

图片打不开?

Disk

qrcode

图片打不开?

演示视频

Download

qrcode

图片打不开?

演示视频

Image

qrcode

图片打不开?

演示视频

Main

qrcode

图片打不开?

Manager

qrcode

图片打不开?

Map

qrcode

图片打不开?

演示视频

Media

qrcode

图片打不开?

演示视频

演示视频

qrcode

图片打不开?

演示视频

Movie

qrcode

图片打不开?

演示视频

Music

qrcode

图片打不开?

演示视频

Mvp

qrcode

图片打不开?

Office

qrcode

图片打不开?

演示视频

Phone.png

qrcode

图片打不开?

Report

qrcode

图片打不开?

演示视频

Repository

qrcode

图片打不开?

ResourceKey

qrcode

图片打不开?

Scene

qrcode

图片打不开?

演示视频

Screen

qrcode

图片打不开?

演示视频

Test

qrcode

图片打不开?

Tool

qrcode

图片打不开?

Touch

qrcode

图片打不开?

Track

qrcode

图片打不开?

演示视频

基础控件

Button

TextBox

CheckBox

RadioButton

ToggleButton

ComboBox

DatePicker

Slider

ProgressBar

Expander

ListBox

DataGrid

TreeView

TabControl

ContextMenu

Label

TextBlock

ToolTip

自定义控件

PropertyGrid

Chart2D

Diagram

Drawer

Explorer

ExplorerTree

FilterBox

FilterColumn

SelectionBox

GridSplitter

Guide

ImagePlayer

AnimationBox

AnimatedTabControl

LeftMenu

Message

MessageContainer

MessageListBox

MultiComboBox

PagedDataGrid

Panel

PasswordBox

Ping

ScrollInto

ScrollVewerLocator

SearchComboBox

Shape

Shuttle

StoryBoard

TextEditor

ThemeSet

ToggleExpander

TopContainer

TransformAdorner

TreeListView

自定义窗口

Blur

Float

Login

Main

MessageDialog

Notify

Ribbon

Start

系统功能

About

Feedback

Notification

Start

Survey

WinTool

About

Identity

Setting

Upgrade

Project

Operation

License

Module

Mvc

AppConfig

特性

Design

Encryption

Excel

Logger

Print

Repository

XmlSerialize

Mvp

Validation

ViewModel

Animation

MarkupExtension

Command

Converter

Interactivity

TypeConverter

使用

https://github.com/HeBianGu/WPF-ControlBase/wiki

示例

这是一个最简单的使用方式示例

HeBianGu.Demo.Demo1

这是一个基础控件中的ResourceKey示例

HeBianGu.Demo.Demo2

        <Button Style="{DynamicResource {x:Static h:ButtonKeys.Accent}}" />

这是一个公用基础的ResourceKey示例

HeBianGu.Demo.Demo3

        <Button Background="{DynamicResource {x:Static h:BrushKeys.BackgroundDefault}}"/>

这是一个最简单的MainWindow窗口示例

HeBianGu.Demo.Demo4

   //  Do :继承ApplicationBase
   public partial class App : ApplicationBase
    {
       
    }
    //  Do :继承h:MainWindow
    <h:MainWindow x:Class="HeBianGu.Demo.Demo4.MainWindow"

这是一个注册主题设置和注册保存配置信息的示例

HeBianGu.Demo.Demo5

            //  Do :注册窗口配置,注册后窗口右侧有可设置主题的按钮
            services.AddTheme();

            //  Do :注册序列化保存接口,注册后主题的配置会保存到本地,再次启动会读取
            services.AddXmlSerialize();
            
            //  Do:设置默认主题
            app.UseLocalTheme(l =>
            {
                l.AccentColor = (Color)ColorConverter.ConvertFromString("#FF0093FF");
                l.SmallFontSize = 14D;
                l.LargeFontSize = 16D;
                l.FontSize = FontSize.Small;
                l.ItemHeight = 36;
                l.RowHeight = 40;
                l.ItemCornerRadius = 5;
                l.AnimalSpeed = 5000;
                l.AccentColorSelectType = 0;
                l.IsUseAnimal = false;
                l.ThemeType = ThemeType.Light;
                l.Language = Language.Chinese;
                l.AccentBrushType = AccentBrushType.LinearGradientBrush;
            });

这是一个注册框架对话框的示例

HeBianGu.Demo.Demo6

            //  Do :注册后可以使用框架自带的对话框
            services.AddMessageDialog();

这是一个注册框架配置页面的示例

HeBianGu.Demo.Demo7

            //  Do :注册配置加载方式
            services.AddSetting();

            //  Do :注册右上角配置页面
            services.AddSettingViewPrenter();
            
            //  Do :添加自定义配置信息
            app.UseSetting(l =>
            {
                l.Settings.Add(TestSetting.Instance);
            });

这是一个注册启动页面的示例

HeBianGu.Demo.Demo8

            //  Do :注册启动页面
            services.AddStart();
            
            //  Do :添加启动窗口配置
            app.UseStart(l =>
            {
                l.Title = "HeBianGu";
                l.TitleFontSize = 80;
            });

这是一个注册登录页面的示例

HeBianGu.Demo.Demo9

            //  Do :注册登录页面和使用测试接口
            services.AddIdentity();
            
            //  Do :添加身份认证配置
            app.UseIdentity(l =>
            {

            });

这是一个注册自动更新页面的示例

HeBianGu.Demo.Demo10

            //  Do :注册软件更新页面
            services.AddUpgrade();
            
            //  Do :添加软件更新配置
            app.UseUpgrade(l =>
            {

            });

其他示例待更新...

目前大部分功能采用注入(Add)和配置(Use)的方式添加

Add

系统提供默认方法,如:services.AddMessageDialog(),如果不想使用系统默认对话框则替换成注册方法,重新注册接口即可,如:service.AddSingleton<IMessageDialog, YouMessageDialog>(),其中YouMessageDialog是你要自己实现的对话框,其他功能思想类似;

Use

配置使用如:UseStart(l=>l.Title="HeBianGu")自定义要显示的内容,通过此方式配置的信息都有保存在主窗口右上角的设置按钮的页面中,可以自定义配置和序列化保存在本地;

模板

VS=>项目=>导出模板

Main

HeBianGu.Template.Main

HeBianGu.Template.Link

NuGet包

名称NuGet
HeBianGu.Base.WpfBaseNuGet
HeBianGu.General.WpfControlLibNuGet
HeBianGu.Service.AnimationNuGet
HeBianGu.Service.AppConfigNuGet
HeBianGu.Service.CommandNuGet
HeBianGu.Service.ConverterNuGet
HeBianGu.Service.ImageNuGet
HeBianGu.Service.LicenseNuGet
HeBianGu.Service.MarkupExtensionNuGet
HeBianGu.Service.MvcNuGet
HeBianGu.Service.MvpNuGet
HeBianGu.Service.TypeConverterNuGet
HeBianGu.Service.ValidationNuGet
HeBianGu.Common.ExpressionNuGet
HeBianGu.Control.AdornerNuGet
HeBianGu.Control.Chart2DNuGet
HeBianGu.Control.DiagramNuGet
HeBianGu.Control.DrawerNuGet
HeBianGu.Control.DockNuGet
HeBianGu.Control.DiagraphBoxNuGet
HeBianGu.Control.ExplorerNuGet
HeBianGu.Control.FilterNuGet
HeBianGu.Control.GridSplitterNuGet
HeBianGu.Control.ImagePlayerNuGet
HeBianGu.Control.LeftMenuNuGet
HeBianGu.Control.LayerBoxNuGet
HeBianGu.Control.MessageNuGet
HeBianGu.Control.MessageContainerNuGet
HeBianGu.Control.MessageListBoxNuGet
HeBianGu.Control.MultiComboBoxNuGet
HeBianGu.Control.OutlookBarNuGet
HeBianGu.Control.PagedDataGridNuGet
HeBianGu.Control.PanelNuGet
HeBianGu.Control.PasswordBoxNuGet
HeBianGu.Control.PingNuGet
HeBianGu.Control.PrintBoxNuGet
HeBianGu.Control.PropertyGridNuGet
HeBianGu.Control.ScrollIntoNuGet
HeBianGu.Control.ScreenNuGet
HeBianGu.Control.ScrollVewerLocatorNuGet
HeBianGu.Control.ShapeNuGet
HeBianGu.Control.ShuttleNuGet
HeBianGu.Control.StepNuGet
HeBianGu.Control.StoryBoardNuGet
HeBianGu.Control.ThemeSetNuGet
HeBianGu.Control.TextEditorNuGet
HeBianGu.Control.ToggleExpanderNuGet
HeBianGu.Control.TopContainerNuGet
HeBianGu.Control.TreeListViewNuGet
HeBianGu.Control.VlcNuGet
HeBianGu.Window.BlurNuGet
HeBianGu.Window.FloatNuGet
HeBianGu.Window.LinkNuGet
HeBianGu.Window.MenuNuGet
HeBianGu.Window.MessageNuGet
HeBianGu.Window.MainNuGet
HeBianGu.Window.MessageDialogNuGet
HeBianGu.Window.NotifyNuGet
HeBianGu.Systems.StartNuGet
HeBianGu.Systems.ComponentNuGet
HeBianGu.Systems.IdentityNuGet
HeBianGu.Systems.ProjectNuGet
HeBianGu.Systems.RepositoryNuGet
HeBianGu.Systems.SettingNuGet
HeBianGu.Systems.UpgradeNuGet
HeBianGu.Systems.XmlSerializeNuGet
HeBianGu.Systems.AboutNuGet
HeBianGu.Systems.DesignNuGet
HeBianGu.Systems.EncryptionNuGet
HeBianGu.Systems.ExcelNuGet
HeBianGu.Systems.FeedbackNuGet
HeBianGu.Systems.LicenseNuGet
HeBianGu.Systems.LoggerNuGet
HeBianGu.Systems.NotificationNuGet
HeBianGu.Systems.OperationNuGet
HeBianGu.Systems.PrintNuGet
HeBianGu.Systems.SurveyNuGet
HeBianGu.Systems.WinToolNuGet

作者

赞助支持

支付宝

图片打不开?

微信

图片打不开?

博客

https://blog.csdn.net/u010975589?type=blog

https://space.bilibili.com/370266611

参考项目

https://github.com/HeBianGu/WPF-Control

QQ:908293466