WPF控件分为6类:布局控件:是可以容纳多个控件或者嵌套其他布局的控件。Grid、StackPanel、DockPanel等控件都属此类,它们拥有共同的父类为Panel。内容控件: 只能容纳一个控件或者布局控件作为他的内容。带标题的内容控件:相当于一个内容控件,但是可以加一个标题(Header),标题 部分 亦可容纳一个控件或者布局: 条目控件:可以显示一列数据,一般情况下这列数据的类型是相同的
1. 前言1. 数据驱动 UIWPF 是数据核心、主动的,UI 从属数据并表达数据、是被动的; 不再是 UI 驱动数据,而是数据驱动 UI;2. 控件的定义控件、数据内容、行为(控件响应用户操作执行自己的方法或以事件的形式通知应用程序); 1)控件是数据和行为的载体; 2)所以关注控件时应该关注抽象的数据和行为而不是具体的形象, 3)比如符合"能展示内容并相应用户单击"这一抽象概念的 UI 元素都
转载 5月前
40阅读
小记:最近公司使用WPF开发一款新的产品,从零基础开始学习WPF,在看书的过程中,有些内容需要规整到一起,最终选择了博客园,希望对自己所掌握的知识有所规整。-----------------------------------------------------------------------WPF 控件(1)内容控件:包含并显示一块内容。从技术角度看,内容控件是可以包含单个嵌套元素的控件。与
转载 6月前
34阅读
前言:作为wpf中常用的列表控件之一,Combox既具备了列表控件的下拉功能,又具备了Selector 类的选择功能,算是个复合性控件。现记录下MVVM模式下常用属性。一、简介ComboBox是一个ItemsControl,这意味着它可以包含任何类型的对象,例如字符串、图像或面板。二、常用属性用于MVVM模式下,常用的属性有这么几个,ItemsSource用于绑定数据集,剩下的几个基本上都是选择项
转载 2024-08-24 20:23:11
413阅读
什么是集合视图?集合视图是位于绑定源集合顶部的一层,您可以通过它使用排序、筛选和分组查询来导航和显示源集合,而无需更改基础源集合本身。集合视图还维护着一个指向集合中的当前项的指针。如果源集合实现了 INotifyCollectionChanged 接口,则CollectionChanged 事件引发的更改将传播到视图。如果将控件直接绑定到集合,则 WPF 会绑定到其默认视图。此默认视图由直接到同一
1.GroupBox注意: GroupBox仍然需要布局容器来放置元素。如: StackPanel面板 <GroupBox Header="select number?"> <StackPanel> <RadioButton>one</RadioButton> <RadioBut
一、前言程序界面上的按钮多种多样,常用的就这几种:普通按钮、图标按钮、文字按钮、图片文字混合按钮。本文章记录了不同样式类型的按钮实现方法。二、固定样式的按钮固定样式的按钮一般在临时使用时或程序的样式比较固定时才会使用,按钮整体样式不需要做大的改动。2.1 普通按钮-扁平化风格先看效果:定义Button的样式,详见代码:<Style x:Key="BtnInfoStyle" TargetTyp
转载 2024-03-06 00:40:32
1070阅读
8. 集合视图当绑定到一个集合对象时,WPF 总是默认提供一个视图 (CollectionViewSource)。视图会关联到源集合上,并自动将相关的操作在目标对象上显示出来。(1) 排序向 CollectionViewSource.SortDescriptions 属性中插入一个或多个排序条件 (SortDescription) 即可实现单个或多个条件排序。Window1.xaml1 <W
转载 2024-04-07 15:09:52
194阅读
浅谈WPF中的MVVM一些基础知识WPF中的一个重要特性就是数据绑定(data binding),简单的说就是你有一些数据要显示给用户,你可以把数据和xaml进行绑定。WPF由2部分组成:描述GUI布局和效果的xaml文件,和xaml关联的cs文件。如果你想最大程度上的复用你的代码,最好的方法就是使用MVVM(Model、View、ViewModel)模式,这样可以保证你的View部分包含的代码最
转载 1月前
459阅读
一.组合控件控件模型:WPF 提供三个用于创建控件的常规模型,每个模型都提供不同的功能集和灵活度。 三个模型的基类是UserControl、Control 和 FrameworkElement 。其中UserControl称为用户控件继承自ContentControl,提供类似于Window窗口的简单布局控件创建方式(实现组合控件)。而Control 和 FrameworkElement 称为自定
转载 1月前
480阅读
    新开一节WPF桌面开发的讲解,这节先初步认识一下什么是WPF。1.简介    WPF是 Windows Presentation Foundation 的英文缩写,意为“窗体呈现基础”,是微软基于.NET Framework 3.0 推出的新一代构建窗体程序的框架。不同于WinForm,WPF实现了界面和开发分离,它的界
转载 2024-03-20 12:21:11
44阅读
效果如图: 关键代码 ListView的DataTemplate是一个单一折叠项的内容 ItemsControl是一个列表的内容,之前列表使用DataGrid,但加载速度慢,所以改为ItemsControl <ListView Name="listView" HorizontalAlignment=
原创 2021-04-25 19:42:37
882阅读
# WPF ItemsControl 虚拟化 在 WPF(Windows Presentation Foundation)中,`ItemsControl` 是一个非常重要的控件,用于显示一组数据项。为提高性能,尤其是在数据集较大时,WPF 提供了虚拟化功能,允许控件仅渲染可见区域的数据项,而不是一次性加载所有数据。 本文将深入探讨 `ItemsControl` 的虚拟化,加上代码示例,帮助
原创 8月前
95阅读
继续沿用前两章的讲法,只讲用法,概念,到这一系列课程更新完毕,我会找一些例子讲解一些技术难点. 回顾前两章,我们学习了导航,线程,xaml等一些wpf的技术,这章的技术我不是很擅长,关于布局,我找了一本书,把一些重点和大家说说… 先介绍几种布局的结构,1 , Border 只能包含一个元素,用于生成边框2, grid 这个布局非常常用,采用了非常灵活的行和列,(构成网格)来排序子元素3,
一、Canvas(不太常用)是最基本的布局面板,仅仅支持显示坐标定位(是与设备无关的像素)元素。他是通过设置到面板的上下左右的像素来控制在panel中元素的位置。如控制一个button的位置:我们可以设置附加属性:Canvas.Top="" Canvas.Left="".....从而来定位元素,但是值得注意的是如果我们同时设置两个相对的属性如Canvas.Left="" Canvas.Right=
转载 2024-04-19 12:49:32
355阅读
## WPF ItemsControl 虚拟化实现指南 在WPF中,ItemsControl是一个强大的控件,可以用来显示项目集合。在处理大量数据时,我们常常希望提高性能,通过虚拟化技术来只渲染可见的项目。本文将逐步教你如何在WPF中实现ItemsControl虚拟化。 ### 实现流程概述 | 步骤 | 描述 | |------|------| | 1 | 创建WPF项目 | | 2
原创 9月前
285阅读
依赖属性是建立在原有类属性基础之上的,且只能作用于dependencyobject对象上。可以当作wpf做了一个wrapper,声明依赖属性之前需要针对该属性的source和target以及影响范围先实例化一个frameworkmetadata的元数据,然后再对该属性进行register;接着利用dependencyobject自带的setvalue和getvalue方法进行类属型层次的封装。某些
转载 1月前
386阅读
资源的定义与使用在窗体中定义静态资源:<Window.Resources> <FontFamily x:Key="ButtonFontFamily"> Times New Roman </FontFamily> <sys:Double x:Key="ButtonFontSize"> 18
转载 4月前
92阅读
命令与事件类似,事件用来发布传播一些消息,消息到达接收者,事件的使命就完成了,至于如何响应事件送来的消息事件并不做规定;而命令一旦发出,所有的命令目标都必须执行这个命令,二者的区别就在命令具有约束力而事件没有。  命令的基本元素命令(Command):WPF的命令实际就是实现了ICommand接口的类,平时使用最多的是RotuedCommand类;命令源(Command Source):命令发送者
转载 1月前
415阅读
让我们分析这样一个需求——UI上有若干个文本框和一个“提交”按钮,这些文本框都是用户必须填写的,如果不都填写,提交按钮是不可用的。 习惯了使用WinForm的同学可能脑子里已经开始飞速地搜寻使用Event来解决的方案了。实际上,在WPF里使用多路Data Binding将非常简单。所谓“多路Binding(也可以叫复合Binding)”就是指某个元素的Dependency Propert
转载 9月前
79阅读
  • 1
  • 2
  • 3
  • 4
  • 5