在我们设计软件的很多地方,都看到需要对表格数据进行导入和导出的操作,主要是方便客户进行快速的数据处理和分享的功能,本篇随笔介绍基于WPF实现DataGrid数据的导入和导出操作。1、系统界面设计在我们实现数据的导入导出功能之前,我们在主界面需要提供给客户相关的操作按钮,如下界面所示,在列表的顶端提供导入Excel、导出PDF、导出Excel。由于这些操作功能基本上在各个页面模块,可能都会用到,因此尽可能的抽象到基类,以及提供通用的处理操作,实在有差异的,也可以通过一些属性或者事件方法的覆盖方式来实现即可。因此我们在Xaml里面定义按钮的时候,基本上是调用视图模型的方法来通用化的处理,如下代码所
在我们创建界面元素的时候,不管在Vue3+ElementPlus的前端上,还是Winform桌面端上,都是会利用自定义用户控件来快速重用一些自定义的界面内容,对自定义用户控件的封装处理,也是我们开发WPF应用需要熟悉的一环。本篇随笔继续深入介绍介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发,主要针对自定义用户控件的封装和使用做一些介绍。1、自定义用户控件的应用场景在我们使用原生的WPF控件的时候,有时候发现常规的原生控件不够好看,或者功能达不到要求,就需要进行一定程度上的二次封装处理,也就是自定义控件的开发场景。例如我们前面介绍到的用户信息的查询
在前面随笔《循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发(1)》中介绍了Mvvm的开发,以及一些界面效果,本篇随笔继续深入探讨基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发,介绍如何整合SqlSugar框架的基础接口,通过基类继承的方式,简化实际项目的开发代码处理。1、View模块中的XAML格式说明在介绍MVVM几个部分内容之前,我们先连接一下View模块中的Xaml格式的说明,我们知道Xaml也是一个xml的扩展,属于标记语言的一种,编辑器为了更好的验证格式以及提出上下文的智能提示,必然需
在我们的SqlSugar的开发框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基于UniApp+Vue+ThorUI的移动前端几个前端处理,基本上覆盖了我们日常的应用模式了,本篇随笔进一步介绍前端应用的领域,研究集成WPF的应用端,循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发。1、基于CommunityToolkit.Mvvm开发WPF应用MVVM是Model-View-ViewModel的简写。类似于目前比较流行的MVC、MVP设计模式,主要目的是为了分离视图(View)和模型(Model)的耦合。它是一种
HandyControl是一套WPF控件库,它几乎重写了所有原生样式,同时包含80余款自定义控件(正逐步增加),下面我们开始使用。1、准备1.1创建项目C# WPF应用(.NETFramework)创建项目1.2添加包1.3 在App.xaml中引用HandyControl的皮肤和主题:1.4 窗体文件xaml添加引用xmlns:hc="https://handyorg.github.io/handycontrol"2、窗体2.1 改Window为hc:Window2.2 修改窗体的xaml.cs文件修改窗体类名,否则报错:“分部声明一定不能指定不同的基类”publicpartialclas
WPF常用UI库和图表库(MahApps、HandyControl、LiveCharts)WPF有很多开源免费的UI库,本文主要介绍常见的MahApps、HandyControl两个UI库;在开发过程中经常会涉及到图表的开发,本文主要介绍LiveCharts开源图表库。UI库第三方UI库的使用一般都是三步:Nuget安装在APP.xaml中增加资源Application.Resources>ResourceDictionary>ResourceDictionary.MergedDictionaries>ResourceDictionarySource="..........xaml"/>Res
1.前言最近需要一个WPF的表盘控件,之前Cyril-hcj写过一篇不错的博客《WPF在圆上画出刻度线》,里面介绍了一些原理及详细实现的代码:doubleradius=BackEllipse.Width/2;doublemin=0;doublemax=100;doublestep=360.0/(max-min);for(inti=0;i我本来想直接参考这篇文章的代码封装成一个控件,但我用得不多封装起来又麻烦,索性考虑用ItemsControl实现还比较方便些。2.使用CirclePanel实现既然要用ItemsControl,那首先要有个集合作为它的ItemsSource。在XAML中可以用以
1.前言最近需要一个WPF的表盘控件,之前Cyril-hcj写过一篇不错的博客《WPF在圆上画出刻度线》,里面介绍了一些原理及详细实现的代码:doubleradius=BackEllipse.Width/2;doublemin=0;doublemax=100;doublestep=360.0/(max-min);for(inti=0;i我本来想直接参考这篇文章的代码封装成一个控件,但我用得不多封装起来又麻烦,索性考虑用ItemsControl实现还比较方便些。2.使用CirclePanel实现既然要用ItemsControl,那首先要有个集合作为它的ItemsSource。在XAML中可以用以