MVVM
文章平均质量分 61
有技巧搬砖
这个作者很懒,什么都没留下…
展开
-
WPF DataContext使用
DataContext连接View与ViewModel挂钩。有3种方法可以将View与ViewModel连接起来。1.在XAML中2.后台代码分配3.视图模型定位我们的重点是如何绑定DataContext,因此我们不会在本文中关注样式或数据。我们需要2个文件夹,每个文件夹用于View和ViewModel。然后我创建了两个UserControl,LoginView和RegisterView以及它们各自的ViewModel1.LoginViewModel和2.RegisterViewMo原创 2022-05-12 21:16:18 · 2492 阅读 · 0 评论 -
使用Prism和MVVM架构创建WPF程序
如何使用Prism库和MVVM架构模式开发WPF应用程序。无论您的应用程序有多大或多么复杂,这个基础对于所有类型的项目都是一样的。这就是为什么理解它的行为非常重要的原因。我们将学习如何使用UnityContainer以及如何使用Prism在WPF应用程序中实现模块化。Prism是一个框架,用于在WPF中构建松散耦合、可维护和可测试的XAML应用程序。注意:附有项目下载供您参考。源代码是免费使用和开发的,仅用于学习目的。启动VisualStudio,单击createWPFAPP(.NetFrame原创 2022-05-12 21:13:37 · 987 阅读 · 0 评论 -
WPF 入门教程打印控件
在 WPF 中打印控件、用户控件或窗口在 WPF 中,Visual 是一个对象,它是所有用户界面的父类,包括 UIElement、Containers、Controls、UserControls 甚至 Viewport3DVisual。如果您注意到所有控件或用户控件类,它们都是从 UIElement 类继承的。PrintVisual打印一个 Visual 对象。这意味着,通过使用 PrintVisual 方法,我们可以打印任何控件、容器、窗口或用户控件。下面的代码片段创建了一个 PrintDia原创 2022-03-30 13:29:34 · 1812 阅读 · 0 评论 -
WPF MVVM框架中的INotifyPropertyChanged
INotifyPropertyChanged 接口用于通知视图或 ViewModel 绑定哪个属性无关紧要;它已更新。让我们举个例子来理解这个接口。以一个 WPF 窗口为例,其中共有三个字段:名字、姓氏和全名。在这里,名字和姓氏文本框是可编辑的。因此,根据名字和姓氏的变化,我们必须自动更新全名。使窗户设计图WPF 窗口的 XAML 代码如下<Window x:Class="MVVM_INotifyPropertyChanged.MainWindow" xmlns="http://s原创 2022-03-30 13:25:20 · 1441 阅读 · 0 评论 -
「页面切换」WPF控件库:Newbeecoder.UI 页面切换
WPF MVVM框架实现控件库中页面切换。原创 2022-03-02 10:19:58 · 1375 阅读 · 1 评论 -
WPF(MVVM)控件库:Newbeecoder.UI推送通知(消息提醒)
ewbeecoder.UI在window屏幕某个位置弹出一个提示窗口,通过设置停留时长,到达指定时间就自动关闭窗口。在通知界面有从右到左显示效果,利用DoubleAnimation动画来实现的。通知窗口主要由图标,内容,标题,关闭组成。通过绑定某项来显示相应的内容。控件库演示程序下载地地址:Newbeecoder.UI开源控件库.zip-C#文档类资源-CSDN下载WPF开发桌面软件具有天然优势,能快速漂亮的界面程序。Newbeecoder.UI是一款简单易用漂更多下载资源、学习资料请访原创 2022-01-26 11:36:14 · 865 阅读 · 0 评论 -
很棒的WPF控件库 Newbeecoder.UI
Newbeecoder.UI是一个强大的WPF基于MVVM框架和控件库实用程序。它支持窗口边框阴影,窗口圆角,包含许多优雅的控件。它让开发人员更高效、更快地创建漂亮的WPF构建应用程序。它支持从4.0到4.8的.NET框架,还能在X86、X64上运行。为了开发者更方便快捷搭建WPF应用程序,在Demo程序中使用MVVM框架创建,用户可以参考Demo模型来创建自己的应用程序。第一部分先剖析一下Newbeecoder.UI控件库Demo程序框架:一、控件代码样式(各种类型控件样式)二、公共类原创 2022-01-25 15:10:12 · 1778 阅读 · 2 评论 -
基于MVVM框架UI控件库—MessageBox
在WPF控件中MessageBox消息框对话框,给用户界面提示消息,它是ShowDialog对话框。Newbeecoder.UI的NbMessageBox消息框主要参数有标题、消息内容、提示按钮类型。在设计NbMessageBox类增加一些自定义基础属性,方便用户后期扩展功能和样式。常用的属性是按钮类型,消息内容,消息图标,图标宽(高)度,图标颜色,图标间距,消息间距,对齐方式,Ok按钮内容,Cancel按钮内容,Yes按钮内容,No按钮内容,Ok按钮样式,还有更多属性就不一一列举了。NbMes原创 2022-01-25 09:44:44 · 829 阅读 · 0 评论 -
WPF MVVM框架搭建Newbeecoder.UI控件库—窗口样式
在WPF开发中经常用到Window和Page两种界面,标准窗体分两个部分:非客户区和客户区。1、非客户区有窗体图标、标题、最小化、最大化、关闭等按钮。2、客户区是放应用程序的内容。在Newbeecoder.UI控件库有三种默认样式的窗体,分别是主题窗体、默认窗体、Mac窗体一、主题窗体开发NbWindowEx类而生成的。在主题窗体中添加自定义属性(标题对齐、扩展图标、图标宽高度、显示关闭按钮、显示最大化和最小化按钮、显示标题、标题颜色、系统按钮样式)等功能,用户可以自己窗体样式去设置相关原创 2022-01-24 14:11:06 · 665 阅读 · 0 评论 -
WPF开发国产控件库【Newbeecoder.UI】主题窗口
首先点击Newbeecoder.UI控件库主界面点击皮肤按钮进入主题窗口设置界面。在皮肤设置页面中,默认设置五种皮肤颜色,分别是默认、深红,活力,少女,自定义。如果选择自定义皮肤能自由设置主题颜色,成功色,信息色,警告色,危险色。在主题窗口还能对窗口圆角、窗口阴影,控件圆角设置,原理是设置全局静态属性,属性实现INotifyPropertyChanged接口自动响应功能。所以就能动态切换样式。Demo下载地网址:Newbeecoder.UI开源控件库.ziphttps://downl原创 2022-01-21 09:58:01 · 893 阅读 · 2 评论 -
超实用控件库【Newbeecoder.UI】带Icon输入框
我们自定义文本框控件,包含想要显示的图标代码+文本提示+内容样式。WPF默认文本框是可以输入任意字符的,为了给开发者带来方便,在NbTextBox输入框中加入图标显示功能,先定义Geometry存放矢量图数据。NbTextBox中的NbData依赖属性获取资源键。Placeholder属性设置提示内容。下图中第一个基础图标文本框、第三种是数字图标文本框、第三种是密码图标文本框。在Newbeecoder.UI控件库很方便扩展开发者所需的样式。为了方便用户了解软件功能,先视频简单演..原创 2022-01-19 15:45:12 · 614 阅读 · 0 评论 -
WPF(MVVM) Newbeecoder.UI控件库按钮样式
为了满足开发者需求,在基础按钮上再添加几个自定义按钮样式。开发者可以根据示例来设计自己所需的按钮。在Newbeecoder.UI源码控件库中先添加5款样式,后期再添加更多样式。第一个按钮含有图标+文字+边框、第二个只含有图标的圆形按钮、第三个左边图标+文字、第三个文字+右边图标、第四个上面图标+文字、第五个文字+右上角提示文字按钮。如下图所示:为了方便用户了解软件功能,先视频简单演示下控件库界面和程序框架。C# WPF新版开源控件库:Newbeecoder.UI下载Demo网.原创 2022-01-18 16:26:02 · 713 阅读 · 0 评论 -
MVVM框架开源控件库 Newbeecoder.UI--Popup使用
WPF中的弹出窗口是一个浮动在页面或窗口上的窗口,为一些快速操作提供功能,例如,Newbeecoder.UI控件库主界面开发者logo弹出提示。WPF带有一个Popup 控件来提供此功能。WPF中可用的弹出控件。设置IsOpen属性设置为True,NbPopup控件显示其内容。默认弹窗是打开状态,直到IsOpen属性设置为False。PlacementTarget获取或设置NbPopup打开时相对于其定位的元素。Placement获取或设置的方向。StaysOpen 设置当控件不再处于焦点时原创 2022-01-17 11:53:46 · 450 阅读 · 0 评论 -
WPF【Newbeecoder.UI】控件库动画
在Newbeecoder.UI中,创建了通用动画类,动画用Storyboard创建的。在开发动画效果有个重要对象是实Storyboard。在Storyboard对象中包含时间线对象(Timeline),时间线分为三种类型分别是Double,Point,或Color的属性产生动画。本动画效果就是基于这个理论的。要实现页面切换效果,主要是设置Opacity,From,To,Duration几个属性逐渐改变实现方式。为了方便用户了解软件功能,先视频简单演示下控件库界面和程序框架。C# WPF新版开源控件库原创 2022-01-14 10:20:04 · 522 阅读 · 1 评论 -
好用的轻量级UI控件库
程序开发者使用第三方UI库更多是为了方便且省事把控件植入到项目中去,不用去研究UI控件实现细节,同时还有基础属性设置改变其样式。这样更快速开发项目,节省不少时间。Newbeecoder.UI控件库也是基于这个架构理念开发的,在Windows平台上用wpf开发项目具有天然的优势。本篇文章主要分两部分介绍第三方Newbeecoder.UI库,第一部分介绍UI库使用方式,第二部分简单介绍下开源控件库框架和代码结构。为了方便用户了解软件功能,先视频简单演示下控件库界面和程序框架。C# WPF新版开源原创 2022-01-12 10:30:53 · 2264 阅读 · 4 评论 -
开源WPF第三方库【Newbeecoder.UI】分页控件
在Web开发中经常用到数据分页,但是PC端软件分页控件简单易用的组件不多。自定义分页通过仅从数据源检索需要为用户请求的特定数据页面显示的记录来提高默认分页的性能。分页主要有以下功能:当前页、共多少页、共多少条、每页多少条、跳转第几页,首页、上一页、下一页、末页。使用NbPageBar分页时需要绑定PageNo(页码)指当前是第多少页。PageSize(页大小)每页多少条,比如10条/页,20条/页。TotalPages(共多少页)总共页数需要在程序中通过总记录数/每页多少条来计算出共总页数。Tot原创 2022-01-11 10:01:45 · 813 阅读 · 0 评论 -
WPF源码控件库《Newbeecoder.UI》轮播
轮播控件是一种强大且视觉上吸引人的方式来呈现多个数据项,本文讨论Newbeecoder.UI轮播控件的原理和一个简单的演示应用程序。轮播控件是包含Canvas控件的 WPF 用户控件,项目控件是的子元素,位于canvas投影到屏幕平面上的圆上。该控件实现了一个SelectionChanged事件,允许所有者在通过单击鼠标左键选择项目时收到通知。旋转是使用计时器实现的,计时器在所选项目更改时启动。计时器每2毫秒触发一次,以确保平稳旋转。在每个刻度上,它移动项目的量与旋转速度成正比。在Newbe原创 2022-01-10 09:53:37 · 658 阅读 · 0 评论 -
C#开源代码Newbeecoder.UI控件库极力推荐
WPF开发应用软件具有天然优势,能快速开发漂亮的UI控件。为适应现代PC软件快速开发要求,Newbeecoder.UI开源控件库为软件团队提供强大的基础框架以及快速开发能力,开发框架集成大量的通用实用类和扩展样式资源文件。借助开源代码用户能快速投入研发自己的项目。开发框架经过严格的技术验证和系统测试,如压力测试,得到广大用户的赞誉和好评。我们积极收集用户反馈的意见,不断完善和改进,最新版本极少有系统性缺陷。我们秉着分享成功经验,坚持创新原则,永久提供优质的售后服务与技术保障。每次发布新版本,一定会给原创 2022-01-07 16:52:45 · 4276 阅读 · 3 评论 -
WPF(C#)新版开源控件库:Newbeecoder.UI等待动画
在WPF应用程序中,有一些应用程序信息数据量太大。加载此窗口时需要一些时间,尤其是第一次打开时。我正在尝试在窗口打开时实现加载动画,以便应用程序看起来继续响应。添加加载动画的进程只能在 UI线程上运行,尝试在UI 线程上执行所有操作的问题。需要后台运行或以其他方式不阻塞长时间运行的逻辑。异步运行Task并停止仅执行当前方法,直到它返回。它不会阻塞调用线程。首先我们创建一个WaitingBox控件,用于显示等待动画,在控件中增加几项属性,RadiusX,RadiusY、圆角。RadiusX和Radiu原创 2022-01-07 14:31:20 · 668 阅读 · 0 评论 -
基于MVVM框架开源控件库【Newbeecoder.UI】NbExpander使用
WPF的Expander是显示内容视图控件,扩展区域的内容可以展开或折叠。ExpandDirection是设置扩展方向,FontSize设置字体大小,IsExpanded展示显示。在Expander中加入ScrollViewer来显示指定的滚动样式。Demo版下载地址:Newbeecoder.UI.zip-C#文档类资源https://download.csdn.net/download/liaohaiyin/63234875Newbeecoder.UI控件库根据用户需求开发稳定而高效项目,通过视频原创 2022-01-06 11:49:04 · 1357 阅读 · 0 评论 -
C#《Newbeecoder.UI》新版控件库DataGrid使用
用DataGrid控件显示数据和信息的集合。在WPF能自定义外观,单元格,表格头部,字体,颜色等内容。使用ItemsSource属性进行数据源绑定,绑定任何实现IEnuemerable的数据源。默认情况下,当用户单击DataGrid中的单元格时会选择整行,如果用户选择多行设置SelectionMode属性。假如不想生成自动列使用AutoGenerateColumns属性设置为false。GridLinesVisibility使网格线可见、AreRowDetailsFrozen冻结行详细信息。Micr原创 2021-12-31 10:16:04 · 764 阅读 · 1 评论 -
源码WPF控件库《Newbeecoder.UI》MVVM框架推荐
Newbeecoder.UI是一个轻量级的很好扩展性的基于MVVM开发框架,可用来快速搭建C# WPF应用程序,而无需了解控件内部实现细节,方便扩展更多控件样式以及使用,该项目使用纯C#+WPF开发,易于扩展和集成到已有的项目。只要你的已有系统是使用.NET开发的,你都能够使用Newbeecoder.UI来轻易的开发出你好看的应用程序来集成到你的现有项目之中。为适应现代PC软件快速开发要求,Newbeecoder.UI开源控件库为软件团队提供强大的基础框架以及快速开发能力,开发框架集成大量的通用实用类和原创 2021-12-30 11:59:10 · 2028 阅读 · 0 评论 -
C# WPF新版开源控件库:Newbeecoder.UI之NbTreeView
树状控件主要功能是显示分层结构可折叠的节点内容,在控件中可以使用ItemsSource作为数据源。有一个重要的属性HierarchicalDataTemplate对象用于设置层级数据模板。在NbTreeView控件TreeViewItem填充内容项,当设置IsExpanded属性为true表示展开,如果想获取选中状态使用IsSelected。Newbeecoder.UI开源控件Demo下载链接:Newbeecoder.UI开源控件https://share.weiyun.com/P1ZABPUd原创 2021-12-29 09:35:52 · 631 阅读 · 0 评论 -
WPF 开源控件库 Newbeecoder.UI推荐:开/关
于显示两个独占选项。控制由按钮平滑地左右滑动的轨迹表示。这两个状态的内容可以根据它们的位置进行选择。该按钮源自我们的ToggleButton控件。由于继承,它具有ToggleButton控件的所有功能。,根据IsChecked实现滑动动作。开关按钮的文本显示自定义依赖属性OffContent和OnContent来接收。使用 ToggleSwitch 控件让用户在打开和关闭状态之间切换选项。使用IsOn属性来确定开关的状态。例如电灯开关。使用切换开关控件为用户提供两个互斥的选项(例如开/关),其中原创 2021-12-24 09:46:19 · 726 阅读 · 0 评论 -
C# WPF新版开源控件库:Newbeecoder.UI
为了给开发者或第三方用户提供最好的开源库,所以最近一直在努力升级Newbeecoder.UI库。Newbeecoder.UI控件和源码视频演示效果:按钮形式的外观。 按钮表示由多个对象组成,其中包括矩形和其他组件,用于为按钮指定独特的外观。到目前为止,控件在应用程序中的外观控件限制为更改按钮的属性。 如果要对按钮的外观进行更多的根式更改,会怎么样? 模板可以强大地控制对象的表示形式。 由于可以在样式内使用模板,如何调用Newbeecoder.UI控件,看一下调用代码:<NbR原创 2021-12-13 23:38:44 · 2641 阅读 · 2 评论 -
WPF开源控件Newbeecoder.UI之ListBox
WPF ListBox是ListBoxItems的集合。如何添加列表框项、向 ListBox 添加项、从ListBox删除项以及如何将 ListBox 绑定到数据源,可以在网上搜索相关资料。先演示一下Newbeecoder.UI列表框运行效果:这里讨论如何设计和Newbeecoder.UI统一风格样式。对于ListBox容器部分添加几项依赖属性,分别是非客户区鼠标/触摸响应事件、圆角和禁用时鼠标的样式。代码如下:同样的ListBoxItem的集合类也需要添加自己依赖属性,分别是非客户区鼠原创 2021-12-09 12:24:00 · 794 阅读 · 0 评论 -
开源WPF控件库【Newbeecoder.UI】ToggleButton
在上一章讲了单选框样式,单选扩展依赖属性类继承于RadioButton。然后在自定义样式,RadioButton中需要把GroupName设置为同一组名称即可。复选框实现原理同单选框相同,主要区别在于实现多选需要继承ToggleButton类,此类每个按钮是可以单独选择的。先看一下实现效果:增加几项依赖属性和单选框一样。这里就不再多介绍。/// <summary> /// 多选框 /// </summary> public class N原创 2021-12-08 11:45:13 · 394 阅读 · 0 评论 -
WPF开源控件【Newbeecoder.UI】遮罩层
在项目中,用户设置IsEnabled为False时,控件不可用,当控件不可用可以给它增加遮罩层。用户就点不到控件。下面来分解一下遮罩层实现原理:定有不可用装饰类,DisabledAdorner继承Adorner装饰类。Adorner是继承FrameworkElement元素基类。定义集合VisualCollectione用于添加Grid,定义Grid容器用于遮罩控件。private VisualCollection _visCollec;private Grid _grid;在构造方原创 2021-12-06 15:41:59 · 1066 阅读 · 0 评论 -
开源WPF控件库【Newbeecoder.UI】介绍
WPF控件库有DevExpress,MaterialDesignInXamlToolkit,Panuon.UI.Silver等,有些控件不开源或者扩展其它功能麻烦,今天分享一套全开源且使用方便的控件库。WPF开发桌面软件具有天然优势,能快速漂亮的界面程序。 Newbeecoder.UI是一款简单易用漂亮的UI控件库,融合多个开源框架组件,为个人定制的UI提供支持。Newbeecoder.UI包括一些常用控件,包括按钮,文本框,标签,下拉列表,树型控件,表格等。先视频看一下控件效果。WPF UI开原创 2021-12-03 13:53:26 · 5618 阅读 · 4 评论 -
WPF 入门教程IValueConverter 转换
值转换器经常与数据绑定一起使用。以下是一些基本示例:您有一个数值,但您想以一种方式显示零值并以另一种方式显示正数 您想根据值检查 CheckBox,但该值是类似“yes”或“no”的字符串,而不是布尔值 您有一个以字节为单位的文件大小,但您希望根据它的大小将其显示为字节、千字节、兆字节或千兆字节这些是一些简单的情况,但还有更多。例如,您可能希望根据布尔值检查复选框,但您希望将其反转,以便在值为 false 时检查 CheckBox,而在值为 true 时不检查。您甚至可以使用转换器根据值为 Ima原创 2021-12-01 17:56:59 · 267 阅读 · 0 评论 -
WPF 入门教程数据绑定(二)
在上一篇文章中,我们看到了 TextBox 中的更改如何不会立即发送回源。相反,只有在 TextBox 上失去焦点后才更新源。此行为由名为UpdateSourceTrigger的绑定上的属性控制。它默认为值“默认”,这基本上意味着根据您绑定到的属性更新源。在撰写本文时,除了 Text 属性之外的所有属性都会在属性更改时更新 (PropertyChanged),而 Text 属性会在失去对目标元素的关注时更新 (LostFocus)。显然,默认值是 UpdateSourceTrigger 的默认值。其他选原创 2021-11-26 09:45:49 · 301 阅读 · 0 评论 -
WPF 入门教程数据绑定(一)
数据绑定是将两个数据/信息源绑定在一起并保持数据同步的通用技术。通过 WPF,Microsoft 将数据绑定放在了首位,一旦您开始学习 WPF,您就会意识到它几乎是您所做的一切的重要方面。如果你来自 WinForms 的世界,那么对数据绑定的巨大关注可能会让你有点害怕,但是一旦你习惯了它,你可能会爱上它,因为它让很多事情变得更干净、更容易维护.WPF 中的数据绑定是将数据从代码带到 UI 层的首选方式。当然,您可以手动设置控件的属性,也可以通过从循环向 ListBox 添加项来填充 ListBox,原创 2021-11-26 09:44:08 · 471 阅读 · 0 评论 -
WPF 入门教程自定义控件
到目前为止,在本教程中,我们只使用了 WPF 框架中的内置控件。它们会让你走很长的路,因为它们非常灵活,可以进行样式和模板化,几乎可以做任何事情。但是,在某些时候,您可能会从创建自己的控件中受益。在其他 UI 框架中,这可能非常麻烦,但 WPF 使它变得非常简单,为您提供了两种完成此任务的方法:UserControls和自定义控件。WPF UserControl 继承了 UserControl 类,其行为与 WPF 窗口非常相似:您有一个 XAML 文件和一个代码隐藏文件。在 XAML 文件中,您可以添原创 2021-11-23 09:21:15 · 2668 阅读 · 0 评论 -
WPF 入门教程Grid使用技巧
在上一章中,我们向您介绍了出色的 Grid 面板,并向您展示了一些有关如何使用它的基本示例。在本章中,我们将进行一些更高级的布局,因为这是 Grid 真正闪耀的地方。首先,让我们加入更多的列甚至一些行,以获得真正的表格布局:<Window x:Class="WpfTutorialSamples.Panels.TabularGrid" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"原创 2021-11-22 14:30:43 · 2947 阅读 · 0 评论 -
WPF 入门教程Grid
网格可能是最复杂的面板类型。一个 Grid 可以包含多个行和列。您可以为每一行定义一个高度,为每一列定义一个宽度,以像素的绝对数量、可用空间的百分比或作为自动,其中行或列将根据内容。当其他面板无法完成工作时使用网格,例如,当您需要多列并且经常与其他面板结合使用时。在最基本的形式中,Grid 将简单地采用您放入其中的所有控件,拉伸它们以使用最大的可用空间并将其放置在彼此的顶部:<Window x:Class="WpfTutorialSamples.Panels.Grid" xm原创 2021-11-15 18:55:49 · 881 阅读 · 0 评论 -
WPF 入门教程DockPanel介绍
在DockPanel中可以很容易地停靠在所有四个方向的内容(上,下,左,右)。这使它在许多情况下成为一个很好的选择,您希望将窗口划分为特定区域,特别是因为默认情况下,DockPanel 内的最后一个元素,除非此功能被明确禁用,否则将自动填充其余空间(中心)。我们在 WPF 中的许多其他面板中看到的那样,您可以通过使用面板的附加属性开始利用面板的可能性,在本例中为 DockPanel.Dock 属性,它决定了您希望子控件朝哪个方向移动停靠到。如果您不使用它,第一个控件将停靠在左侧,最后一个占用剩余空间。原创 2021-11-15 18:55:06 · 5045 阅读 · 0 评论 -
WPF 入门教程StackPanel介绍
StackPanel是非常相似的WrapPanel,但至少有一个重要的区别:StackPanel的不换行的内容。相反,它将内容向一个方向拉伸,允许您将一项一项一项地堆叠在一起。让我们首先尝试一个非常简单的示例,就像我们对 WrapPanel 所做的一样:<Window x:Class="WpfTutorialSamples.Panels.StackPanel" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presenta原创 2021-11-15 18:53:54 · 1242 阅读 · 0 评论 -
WPF 入门教程WrapPanel介绍
WrapPanel将定位每个子控件的旁边,另外,水平方向(默认值)或垂直,直到没有更多的空间,在那里将换到下一行,然后继续。当您想要一个垂直或水平列表控件在没有更多空间时自动换行时使用它。当 WrapPanel 使用 Horizontal 方向时,子控件将被赋予相同的高度,基于最高的项目。当 WrapPanel 为垂直方向时,子控件将被赋予相同的宽度,基于最宽的项目。在第一个示例中,我们将检查具有默认(水平)方向的 WrapPanel:<Window x:Class="WpfTu原创 2021-10-28 18:01:37 · 749 阅读 · 0 评论 -
WPF 入门教程Canvas介绍
Canvas 可能是其中最简单的 Panel。默认情况下它并没有真正做任何事情,它只是允许您将控件放入其中,然后使用显式坐标自己定位它们。如果您曾经使用过像 WinForms 这样的其他 UI 库,这可能会让您感到宾至如归,但是虽然拥有对所有子控件的绝对控制权很诱人,但这也意味着面板不会为您做任何事情一旦用户开始调整您的窗口大小,如果您本地化绝对定位的文本或者内容是否被缩放。稍后会详细介绍,让我们看一个简单的例子。这主要是为了向您展示默认情况下 Canvas 的作用有多大:<Window原创 2021-10-28 18:00:39 · 660 阅读 · 0 评论 -
WPF 入门教程文本渲染介绍
在本文中,我们将讨论为什么使用 WPF 有时会使文本渲染得更模糊、后来如何解决这个问题以及如何自己控制文本渲染。正如在本教程中已经提到的,与 WinForms 等其他 UI 框架相比,WPF 本身可以做更多的事情,WinForms 将在很多很多事情上使用 Windows API。这在文本渲染方面也很明显——WinForms 使用来自 Windows 的 GDI API,而 WPF 有自己的文本渲染实现,以更好地支持动画以及 WPF 的设备无关特性。不幸的是,这导致文本变得有点模糊,尤其是小字体。一段原创 2021-09-28 21:16:40 · 307 阅读 · 0 评论