WPF
文章平均质量分 85
SchuylerEX
这个作者很懒,什么都没留下…
展开
-
WPF入门到跪下 第十三章 3D绘图 - 3D绘图基础
四大要点WPF中的3D绘图涉及4个要点:要展示3D内容,首先需要一个容器来装载3D内容。在WPF中,这个容器就是(3D视口),它继承自,因此可以像其他元素那样在XAML中使用。与其他元素相比较,仅增多了两个属性:和。此外,还有一个值得注意的属性,,这个属性在使用上与其他元素没什么区别,只是如果在渲染复杂且频繁更新的3D场景中置为,可以很好地提升性能。视口能够注入所有继承自类的3D对象。但是如果我们要在WPF中通过XAML或者代码去创建可用的3D对象,其复杂程度是难以想象的,而WPF的原生库中也没有提供3D形原创 2024-09-07 16:50:36 · 1167 阅读 · 0 评论 -
WPF入门到跪下 第十二章 性能优化-列表控件性能
下面记录几种针对大数据列表控件性能的增强特性,WPF所有继承自的控件(列表控件)都支持这些增强特性,包括ListBoxComboBoxListViewTreeView以及DataGrid。原创 2024-07-25 11:02:31 · 732 阅读 · 0 评论 -
WPF入门到跪下 第十一章 Prism(八)模块化管理-Module
Module是功能和资源的逻辑集合,其打包方式可以单独开发、测试、部署并集成到应用程序中。当随着项目较为庞大,有大量的不同业务、ViewViewModel时,就需要考虑根据不同业务进行程序集的拆分了,而Module就是帮助我们管理不同的程序集并集成到应用程序中。每个模块化管理的程序集中都有一个模块核心类,IModule的子类。主程序集通过加载这个IModule的子类,就可以将对应程序集集成到主程序集的prism框架中来。原创 2024-09-07 14:34:28 · 1313 阅读 · 0 评论 -
WPF入门到跪下 第十一章 Prism(七)区域化管理-Region
WPF、MVVM框架、Prism的区域管理详细教程原创 2024-02-06 10:44:03 · 2787 阅读 · 0 评论 -
WPF入门到跪下 第十一章 Prism(六)跨模块交互
Prims 跨模块通信原创 2024-02-01 13:47:39 · 2113 阅读 · 0 评论 -
WPF入门到跪下 第十一章 Prism(五)IOC的依赖注入
默认情况下Prism框架的项目,在打开窗口时会自动匹配主窗口的视图模型类(启动),这里是MainWindowViewModel,匹配到之后Container自动创建MainWindowViewModel的实例,创建时会先检查MainWindowViewModel有没有无参构造函数,如果没有则会检查构造函数的参数类型,并在Container内部列表中寻找对应类型并创建参数对象,然后使用该参数对象来创建MainWindowViewModel。设置好在函数中注册依赖类型使用命名空间下的。原创 2024-09-07 13:43:05 · 1041 阅读 · 0 评论 -
WPF入门到跪下 第十一章 Prism(四)View与ViewModel的自动关联
在学习MvvmLight框架时,也使用了类。但在MvvmLight框架中,只是一个自定义类,与框架无关,目的就是初始化IOC容器。而在Prism框架中则不同,Prism框架内置了类,并且可以帮助我们进行View与ViewModel层之间的绑定。原创 2024-09-07 13:17:31 · 1269 阅读 · 0 评论 -
WPF入门到跪下 第十一章 Prism(三)行为处理
Prism框架提供了类型,专门用于进行WPF中的行为处理。:的构造函数,创建对象。定义命令xaml中绑定命令以上做法就能实现最简单的命令了,缺点是无法进行命令状态检查。带参数的命令Prism框架中,命令的使用跟MVVMToolkit框架是类似的,命令的执行函数可以有参,也可以无参,具体用法如下:二、命令的状态检查Prism提供了三种命令状态检查方式可以向的构造函数中传入状态检查的委托函数。然后在合适的节点去调用对象的方法来执行状态检查函数。:的构造函数,创建对象。:调用对象的命令状态检查函数(构造时原创 2024-01-22 20:59:35 · 1637 阅读 · 0 评论 -
WPF入门到跪下 第十一章 Prism(二)数据处理
Prism框架提供了类,用于做数据处理(例如属性的变化通知等)。通过继承类,可以更加便捷地在WPF中实现属性变化通知,具体有如下五种方式。其中前三种没啥特殊的,第四种方式可以在属性变化时,通知其他属性的绑定控件;而第五种方式则可以在属性发生变化后调用指定的函数。原创 2024-01-19 22:57:06 · 1781 阅读 · 0 评论 -
WPF入门到跪下 第十一章 Prism(一)初始化启动
源码地址:https://guthub.com/PrismLibrary/prismPrism最初是由微软开发的,旨在帮助开发人员创建可维护和可扩展的WPF(Windows Presentation Foundation)应用程序。随着时间的推移,Prism的开发和维护转移到了社区,成为一个开源项目。提供了一组设计模式的实现,有助于编写结构良好的且可维护的XAML应用程序,包括MVVM、依赖注入、命令、事件聚合器等。Prism.Core。原创 2024-01-26 17:07:36 · 1360 阅读 · 0 评论 -
WPF入门到跪下 第十章 MVVMToolkit
由于MVVMLight已经停止维护,微软出于后续使用的考虑,自主开发、维护了MVVMToolkit框架。MVVMToolkit相对于MVVMLight具有更快的效率和更强大功能,但是其运行框架要求.NET Standard2.0以上版本,也就是说Framework基本上用不了。在MVVMLight框架中,当成功安装库后,会自动在程序集中新建MainViewModel(继承了)以及类型,并且类中还进行了对IOC容器的设置以及向IOC中注册类型。此外,还会在App.xaml中将对象引入。原创 2024-01-18 11:42:04 · 1829 阅读 · 0 评论 -
WPF入门到跪下 第九章 MVVM-跨模块交互
以上的做法,将对应的窗口类型剥离出来,由WindowManager统一管理,实现各个模块之间的相互隔离。这个方式不仅仅用于ViewModel层访问窗口对象,还能针对不同的跨模块访问情况做出不同的调整。在实际开发过程中,经常会遇到多个窗口对象,随之而来的就是对应的多个ViewModel对象,这些对象在一定条件下会发生相互访问的情况,例如VM与不同窗口交互、VM与不同VM交互,这些不同模块对象之间的交互,就是跨模块交互。面对跨模块交互,常规的解决方案是创建一个“第三方”来作为交互的中转站。原创 2024-01-14 13:53:14 · 570 阅读 · 0 评论 -
WPF入门到跪下 第九章 MVVM-用命令触发行为
上文中对命令的使用都是直接通过控件中的Command属性来进行绑定的,默认情况下,Command属性所绑定的命令,其触发条件是鼠标的点击。接下来学习如何使用其他行为来作为命令的触发条件。原创 2024-01-14 13:44:38 · 1117 阅读 · 0 评论 -
WPF入门到跪下 第九章 MVVM-行为处理
创建CommandBase类型并实现ICommand接口和对应成员。在MVVM模式的项目框架中,命令类型不属于MVVM中的任意一层,所以可以新建一个Base来存放。(可以是程序集或文件夹)ICommand:事件成员,触发该事件会执行一次CanExcute方法,然后根据该方法的返回结果,来决定绑定该命令的控件对象是否可用。也就是每当关键属性变化的时候可以通过触发此事件,来刷新一下控件对象的可用状态。的订阅(CanExcute),WPF会在运行中自动完成,不需要我们再做订阅。原创 2024-01-13 21:25:38 · 1156 阅读 · 0 评论 -
WPF入门到跪下 第九章 MVVM-基本数据处理
MVVM是Model-View-ViewModel的缩写。mvvm是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI展现出来,ViewModel是一个同步View和Model的对象。在MVVM架构下,View和Model之间没有直接的联系,它们通过ViewModel进行交互,Model和ViewModel之间是交互是双向的,因此,View和Model的数据变化可以是同步的。原创 2024-01-13 21:15:17 · 659 阅读 · 0 评论 -
WPF入门到跪下 第九章 用户控件与自定义控件
创建自定义控件创建完成后,项目中会新增一个MyCustomControl.cs文件和一个含有Generic.xaml的Themes文件夹。MyCustomControl.cs文件用于处理自定义控件的逻辑,Generic.xaml文件则负责界面显示。主题文件思考一个问题,当我们在编辑界面上右键Button按钮编辑样式-编辑副本,然后xaml文件中会出来Button的默认模板代码,这些默认模板是从哪里来的?其实就是从Button的Generic.xaml文件获取的。原创 2024-01-10 11:15:57 · 2914 阅读 · 0 评论 -
WPF入门到跪下 第八章 动画-VisualStateManager
WPF动画状态切换原创 2024-01-09 23:03:18 · 1775 阅读 · 8 评论 -
WPF入门到跪下 第八章 动画-基础
WPF动画相关的基础学习原创 2024-01-09 22:57:43 · 2911 阅读 · 0 评论 -
WPF入门到跪下 第七章 事件
WPF的生命周期时间、输入事件、路由事件、行为等方面的学习原创 2024-01-08 18:36:59 · 1679 阅读 · 0 评论 -
WPF入门到跪下 第六章 图形-渲染
通过转换器,来接收绑定属性,根据属性来返回。原创 2024-01-06 22:54:17 · 1199 阅读 · 0 评论 -
WPF入门到跪下 第六章 图形-绘制
WPF中的图形控件都为Shape类的子类,因此具有一定的共性。Fill:获取或设置图形控件的画刷,Brush类型。BrushesStretch:画刷的拉伸方式。Stroke:图形控件的边界画刷,Brush类型。:图形控件的边界粗细。:用于设置边界线条的实线与间隔比例的集合,一般用来设置虚线边框,例如表示实线占1格、间隔占两格,重复铺满;表示实线占1格、间隔占两格、实线占2格、间隔占3格,重复铺满。需要注意的是,当设置为奇数时有点特殊,会将集合扩充2倍变成偶数,例如,实际效果是。:获取或设置一个。原创 2024-01-06 22:47:07 · 1579 阅读 · 0 评论 -
WPF入门到跪下 第五章 数据绑定
如果不希望再普通属性中做过校验逻辑,或者不想使用依赖属性定义时所设置的校验异常,可以通过捕获自定义的校验规则来实现同样的效果。需要注意的是,如果普通属性的设置逻辑中做了抛出异常的校验然后使用了捕获自定义校验规则,则两则都会触发。如果是依赖属性中设置了校验回调函数,然后使用了捕获自定义校验规则,只会触发自定义校验规则。创建校验规则类创建校验规则类需要实现类型并重写Validate函数。return new ValidationResult(false, "输入值不能是333");set;} = 0。原创 2024-01-04 15:47:13 · 3353 阅读 · 0 评论 -
WPF入门到跪下 第四章 依赖属性
依赖属性的定义分为声明、注册、包装三个部分。原创 2024-01-03 14:35:35 · 1503 阅读 · 0 评论 -
WPF入门到跪下 第三章 基础知识-模板
Grid>仔细观察上述代码的效果,会发现Button的默认灰色背景没了,按钮内容为Button,这是因为在给Button控件指定模板后,其样式方面全部交由模板来管控。原创 2024-01-02 17:50:49 · 701 阅读 · 0 评论 -
WPF入门到跪下 第三章 基础知识-字典与样式
在WPF中,针对控件的样式提供了更加便捷的资源用法,即使用样式元素<Style>。样式元素中常用的属性有SettersResourcesTrigersTargetTypeBasedOn。</Style>Setters与资源定义时一样,定义样式元素的Setter属性元素时,默认都是放在Setters属性元素中的,因此Setters可以不用显式的编写出来。TargetTypeTargetType表示这个Style是用于哪种类型的控件,如果不设置TargetType而直接在Setter属性中设置。原创 2024-01-02 12:03:06 · 1377 阅读 · 0 评论 -
WPF入门到跪下 第三章 基础知识-对象资源
注意,.Net环境下,运行库程序集为,Framework环境下则为mscorlib。值类型资源的定义assembly=System.Runtime"//如果是Framework环境下则为clr-namespace:System;............数组资源的定义............创建自定义类型set;引入该类型所在的命名空间。在元素中进行引用。............需要强调的是,原创 2023-12-29 17:56:46 · 570 阅读 · 0 评论 -
WPF入门到跪下 第三章 基础知识-文件资源
程序集资源即包括图片、字体、音视频(Gif)等静态文件,在程序集中使用这些静态文件时候,需要对文件进行引入,引入之后要引用资源文件一般有两种做法,通过相对路径或URI引用。原创 2023-10-16 16:17:16 · 364 阅读 · 0 评论 -
WPF入门到跪下 第三章 基础知识-x名称空间详解
WPF程序的XAML代码中,在顶级元素中都能看到来引入这个名称空间。与C#语言一样,XAML也有自己的编译器。XAML语言会被解析并编译,最终形成微软中间语言存储在程序集中。在解析和编译XAML语言的过程中,我们经常需要告诉编译器一些重要的信息,比如XAML代码的编译结果应该与哪个C#代码的编译结果合并、使用XAML声明的元素是public还是private访问级别等等,这些让程序员能够与XAML编译器沟通的工具就存放在x名称空间中。原创 2023-10-13 11:57:36 · 423 阅读 · 0 评论 -
WPF入门到跪下 第二章 布局控件
WPF常用的一些布局控件的介绍以及简单使用原创 2023-03-12 20:02:31 · 1030 阅读 · 0 评论 -
WPF入门到跪下 第一章 项目文件介绍
WPF基础入门原创 2022-10-13 23:42:27 · 561 阅读 · 0 评论