草庐IT

WPF性能优化:Freezable 对象

Freezable是WPF中一个特殊的基类,用于创建可以冻结(Freeze)的可变对象。冻结一个对象意味着将其状态设置为只读,从而提高性能并允许在多线程环境中共享对象。Freezable的应用我们定义画刷资源的时候常常会这样写:代码中的o:Freeze="True"其实就是使用Freezable的Freeze方法冻结画刷,使之不可修改,系统不必监视该画刷对象,从而减少资源消耗。o:Freeze="True"乍一看像附加属性,其实并不是的。Freeze属性是http://schemas.microsoft.com/winfx/2006/xaml/presentation/optionsXML命名

DevExpress WPF的电子表格组件,让您更快获得Excel体验(二)

DevExpress WPF的Spreadsheet控件拥有读取、写入、转换XLSx、XLS、CSV和TXT文件的功能,并且为终端用户提供了当今最流行的办公生产力套件才能获得的UI体验。它包括与RibbonUI的完全集成,因此开发者可以以最小的代价交付受MSExcel启发的功能。在上文中(点击这里回顾>>)我们介绍了转化Excel文件、导出为PDF功能、400+个Excel公式和函数等功能,本文继续为大家介绍Spreadsheet组件的其他强大功能!DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强

WPF:.Net6框架下,使用Material Design过程中,配色和UI字体模糊的问题

前言有关MaterialDesign的使用方法,请自行参考这个链接WPF使用MaterialDesign下面,直接上我碰到的问题及解决方式问题1:手动配色默认情况下,MaterialDesign是提供了很多主题配色,但难免有些太过“出挑”,不适合工控软件的风格。所以,下面简单介绍一下手动配色的基础方法:先上完整的App.xamlApplicationx:Class="TooksKit.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(9) -- 实现系统动态菜单的配置和权限分配

在WPF应用端开发,它的界面类似于Winform端,因此我们也需要对系统的菜单进行动态配置,这样才能把系统的功能弹性发挥到极致,通过动态菜单的配置方式,我们可以很容易的为系统新增所需的功能,通过权限分配的方式,可以更有效的管理系统的菜单分配到不同的角色用户,本篇随笔介绍在WPF应用端中实现系统动态菜单的配置和权限分配。1、系统菜单的管理为了能够动态的加载应用系统的菜单,我们需要在数据库中存储对应的菜单信息,配置好后进行权限分配即可。菜单的管理界面如下所示,左侧是一个菜单的树形列表,用来指引选择或者查询特定的菜单,右侧列表列出菜单的相关信息,以及提供新增、编辑、导入、导出、删除等操作入口。由于菜

WPF MVVM中的INT结合

我正在开发具有MVVM模式的WPF应用程序。我在ViewModel类中声明INT属性。当我更改此属性时,更改未显示在UI中。其他数据类型在我的应用程序中效果很好。但是,如果将类型更改为对象,则有效。publicclassTestUserControlViewModel:UserControlViewModel{publicTestUserControlViewModel(TestUserControlViewtestUserControlView){UserControlView=testUserControlView;Inital();}publicRelayCommandAddPriceR

WPF MVVM更新文本编辑器当TreeViewItem选择更改时

我有一个类似定义的目录的树视图:publicclassDirectoryItem:INotifyPropertyChanged{publicStringDisplayName{get;set;}publicStringFullpath{get;set;}publicObservableCollectionChildren{get;set;}publiceventPropertyChangedEventHandlerPropertyChanged;}当用户从TreeView中选择DirectoryItem时,我想从该项目中获取FullPath,从文件中读取所有文本,然后将其加载到文本编辑器中。我

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(8) -- 使用Converter类实现内容的转义处理

在我们WPF应用端的时候,和WInform开发或者Vue前端开发一样,有时候也需要对内容进行转义处理,如把一些0,1数值转换为具体含义的文本信息,或者把一些布尔变量转换为是否等,都是常见的转换处理,本篇随笔介绍在WPF应用端对内容使用Converter类实现内容的转义处理的操作。1、使用Converter实现内容转义或者强调颜色一般在DataGrid中,我们往往都会根据需要对内容或者颜色进行一些转义处理,如下界面所示用户列表信息中,对性别和是否过期的内容进行颜色和内容的转义处理。在DataGrid的XAML代码中,如果是常规的内容,通过定义列名称即可显示,如下所示。DataGridTextCo

WPF3D关于HelixToolkit-3D呈现的交互处理

关于HelixToolkit-这个3D呈现的交互处理推荐使用,因为功能比较强大一个开源3D库,根据MIT许可证获得许可。MIT许可证非常宽松,允许在专有软件中使用。该库基于.NET,目前专注于WPF平台。HelixToolkit是.NETFramework的一个开源3D图形库,它主要用于创建和操作3D图形1。HelixToolkit包含许多实用的3D图形工具,例如3D视图、3D模型、3D场景、3D渲染、3D动画等,它们可以帮助开发者快速创建出高质量的3D图形应用程序1。HelixToolkit的文档和教程可以在官方网站上找到,开发者可以根据需要查看和使用地址:https://github.co

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(7) -- 图标列表展示和选择处理

我们在WPF应用端的界面中,使用lepoco/wpfui来做主要的入口框架,这个项目它的菜单内置了不少图标,我们需要在动态菜单的配置中,使用它作为图标的展示处理,本篇随笔介绍如何基于图标枚举集合进行图标的展示和选择处理。并扩展到Font-Awesome-WPF的处理进行展示和选择。1、lepoco/wpfui项目的图标库lepoco/wpfui项目的图标库来源于FluentSystemIcons,项目地址是:https://github.com/microsoft/fluentui-system-icons这些图标映射到枚举对象 SymbolRegular和SymbolFilled,一个是常规

WPF DataGrid:ListCollectionView排序似乎在更改数据后似乎不起作用

我的DataGrid'ItemsSource是一个ListCollectionView,有一个GroupDescription和两个SortDescriptions。在该程序的第一次运行中,一切都应尽其所能。但是,当数据ListCollectionView是基于更改的,分类的ListCollectionView失败(而Grouping才不是)。它表现得好像标记为“线A”和“线B”的两条线根本不存在。publicListModels{get;set;}publicListCollectionView_collectionView;publicMyConstructor(){InitializeC