草庐IT

WPF-dataGrid

全部标签

WPF使用Microsoft.Toolkit.Mvvm框架记录

前言为了解决WPFUI与程序逻辑之间得到解耦,所以使用Microsoft.Toolkit.Mvvm框架来实现,说真的开发逻辑真的有些不适应,不过理解就好。框架大体支持ICommand、IMessenger等。什么是MVVM?MVVM是Model-View-ViewModel的简写。它本质上就是MVC(Model-View-Controller)的改进版。即模型-视图-视图模型。分别定义如下:【模型】指的是后端传递的数据。【视图】指的是所看到的页面。【视图模型】mvvm模式的核心,它是连接view和model的桥梁。它有两个方向:一是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(2)

在前面随笔《循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发(1)》中介绍了Mvvm的开发,以及一些界面效果,本篇随笔继续深入探讨基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发,介绍如何整合SqlSugar框架的基础接口,通过基类继承的方式,简化实际项目的开发代码处理。1、View模块中的XAML格式说明在介绍MVVM几个部分内容之前,我们先连接一下View模块中的Xaml格式的说明,我们知道Xaml也是一个xml的扩展,属于标记语言的一种,编辑器为了更好的验证格式以及提出上下文的智能提示,必然需

WPF异常处理详解

总目录文章目录总目录一、WPF异常1未捕获异常2模拟未捕获异常场景二、处理未捕获异常1DispatcherUnhandledException异常捕获2UnhandledException异常捕获3UnobservedTaskException异常捕获4异常捕获的综合使用结语一、WPF异常1未捕获异常正常情况下,开发过程中都会使用try…catch在可能会出现异常的地方去捕获和处理异常。然而实际上开发过程中,由于开发疏忽和一些未知原因,程序中会存在未被处理的异常,当程序运行到此,可能会导致程序崩溃的情况,这样会大大的降低用户的使用体验。对于这种未发现未处理的异常,称之为未捕获异常(Unhand

WPF 已知问题 传入错误数据给到 WriteableBitmap 可能导致渲染线程锁住

本文记录一个WPF已知问题,此问题已经被我修复。传入错误的数据给到WriteableBitmap对象,比如调用WritePixels时传入错误的stride数值,将可能导致渲染线程进入无限自旋锁问题描述应用程序停止渲染,或者是界面未响应。表现是在渲染线程卡住,从任务管理器看可以看到有一个CPU核在跑,但没跑满。进行本机代码调试可以看到卡在如下调用堆栈 wpfgfx_cor3.dll!CWGXBitmapLockState::LockRead()line1086 C++ wpfgfx_cor3.dll!CWGXBitmap::HrLock(consttagRECT&rcLock={...},Mi

Wpf依赖属性介绍和用法举例

依赖属性(DependencyProperties)是WPF中一种特殊的属性系统,允许属性值在不同元素之间自动传递、继承和改变。这使得在WPF中可以实现数据绑定、样式、动画、元素关系和其他高级功能。以下是一个示例,演示了如何创建和使用依赖属性:usingSystem.Windows;publicclassCustomButton:DependencyObject{//定义依赖属性publicstaticreadonlyDependencyPropertyButtonTextProperty=DependencyProperty.Register("ButtonText",typeof(stri

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(1)

在我们的SqlSugar的开发框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基于UniApp+Vue+ThorUI的移动前端几个前端处理,基本上覆盖了我们日常的应用模式了,本篇随笔进一步介绍前端应用的领域,研究集成WPF的应用端,循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发。1、基于CommunityToolkit.Mvvm开发WPF应用MVVM是Model-View-ViewModel的简写。类似于目前比较流行的MVC、MVP设计模式,主要目的是为了分离视图(View)和模型(Model)的耦合。它是一种

在Window10和Window11系统,WPF使用Viewport3D 渲染失败问题解决方案

    最近遇到个棘手的问题:在供应商提供的戴尔optiplex3000的12代处理器主机的集成显卡Intel(R)UHDGraphics770上使用Viewport3D渲染失败(3D模型显示不了,或者是显示不全),之前开发验证使用的是集成显卡Intel(R)UHDGraphics630、集成显卡Intel(R)HDGraphics4600、集成显卡Intel(R)UHDGraphics6300的主机都是没有问题的。******************************************************************************************

C# WPF 开源主题 HandyControl 的使用(一)

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

【愚公系列】2023年02月 .NET CORE工具案例-MahApps.Metro基于WPF的UI控件库

文章目录前言一、MahApps.Metro基于WPF的UI控件库1.安装包2.添加资源3.主视图改造4.视图的数据源5.运行程序前言MahApps.Metro是一个用于开发Windows应用程序的开源.NET库,它可以提供一种简单的方式来为WPF应用程序添加丰富的用户界面元素。MahApps.Metro官方文档:https://mahapps.com/docs/MahApps.Metro源码网址:https://github.com/MahApps/MahApps.Metro一、MahApps.Metro基于WPF的UI控件库1.安装包MahApps.Metro2.添加资源在app.xaml中

[WPF]使用HLSL实现百叶窗动效

百叶窗动画是制作PPT时常用的动画之一,本文将通过实现百叶窗动画效果的例子介绍在WPF中如何使用ShaderEffect。ShaderEffect使用高级着色器语言(HighLevelShadingLanguage,HLSL)事先制作好并且已经编译过的效果。先看下百叶窗动画实现效果:准备工作与实现编写和编译HLSL代码,创建ShaderEffect。由于HLSL有自己的语言语法,本文不做讨论。这里使用一个已有的的HLSL文件,也是后边将介绍的一个HLSL编辑器工具ShazzamShaderEditor中的案例。定义像素着色器,在UI元素中使用像素着色器,并通过动画设置百叶窗动画。百叶窗效果的像