WPF控件

摘要:
什么是控件WPF中是数据驱动UI,数据是核心、是主动的;UI从属与数据并表达数据、是被动的。WPF中把那些能够显示数据、响应用户操作的UI元素称为控件。WPF中控件Control是数据和行为的载体,没有固定的形象。WPF的布局元素有以下几种:Grid:网格。
  • 什么是控件

WPF中是数据驱动UI,数据是核心、是主动的;UI从属与数据并表达数据、是被动的。UI的功能是让用户观察和操作数据,为了让用户观察数据,我们需要用UI元素来显示数据;为了让用户操作数据,我们需要用UI元素响应用户的操作。WPF中把那些能够显示数据、响应用户操作的UI元素称为控件。

控件所显示的数据,我们称之为“数据内容”,控件在响应用户的操作后会执行自己的一些方法或以事件的形式通知应用程序,我们称之为控件的“行为”或“算法内容”。

WPF中控件Control是数据和行为的载体,没有固定的形象。如Button,凡是能显示一些提示内容(如文字、图片)并能响应用户点击的UI元素都是Button,不一定是方方正正的。

  • 控件的种类

我们常用的控件主要有以下几类:

  1. 布局控件:可以容纳多个控件或嵌套其他布局控件,用于在UI上组织和排列控件。如Grid、StackPanel、DockPanel等,它们的父类是Panel。
  2. 内容控件:只能容纳一个其他控件或布局控件作为它的内容,如Button,window,它们的父类是ContentControl。
  3. 带标题内容控件:相当于一个内容控件,但可以加一个标题,标题部分也可以容纳一个控件或布局,如GroupBox、TabItem,它们的父类是HeaderContentControl。
  4. 条目控件:可以显示一列数据,一般情况下这列数据的类型相同,如ListBox、ComboBox,它们的共同基类是ItemsControl。
  5. 带标题条目控件:相当于一个条目控件加上一个标题显示区,如TreeViewItem、MenuItem,用于显示层级关系,它们的共同基类是HeaderItemControl。
  6. 特殊内容控件:如TextBox显示字符串,Image容纳图片等。

六类控件的派生关系如下图:

WPF控件第1张

  • WPF内容模型

根据是否可以装在内容、能够装在什么内容,WPF的UI元素可以分为如下几种类型:

类别注释
ContentControl单一内容控件
HeaderContentControl带标题的单一内容控件
ItemsControl 以条目集合为内容的控件
HeaderItemsControl 带标题的以条目集合为内容的控件
Decorator 控件装饰元素
Panel面板类元素
Adorner文字点缀
Flow Text流式文本元素
TextBox文本输入框
TextBlock静态文字
Shape

图形元素

  • WPF布局元素

WPF的布局理念就是把一个布局元素作为ContentControl或HeaderContentControl族控件的Content,再在布局元素里添加要被布局的子级控件,如果UI局部需要更复杂的布局,那就在这个区域放置一个子级的布局元素,形成布局元素的嵌套。

WPF的布局元素有以下几种:

  1. Grid:网格。可以自定义行和列并通过行列的数量、行高和列宽来调整控件的布局。近似于Html中的Table。
  2. StackPanel:栈式面板。可将包含的元素在竖直或水平方向上排成一条直线,当移除一个元素后,后面的元素会自动向前移动以填充空缺。
  3. Canvas:画布。内部元素可以使用以像素为单位的绝对坐标进行定位,类似于Windos Form编程的布局方式。
  4. DockPanel:泊靠式面板。内部元素可以选择泊靠方向,类似于在windows Form编程中设置控件的Dock属性。
  5. WrapPanel:自动折行面板。内部元素在排满一行后能够自动折行,类似与HTML中的流式布局。

免责声明:文章转载自《WPF控件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python学习笔记控制流之恼人的死循环和跳出死循环(break语句)安装、设置和使用SSH Secure shell 实现windows 登录linux dodo下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WPF动画速率效果

在WPF中使用动画的情况非常多,而要让动画变得生动往往要使用一些变速动画,WPF也内置了很方便的缓动函数来实现这一功能。 除此之外,WPF还有关键帧动画,利用关键帧动画能够很好的控制动画的细节,与美工的很多设计保持完美一致。关键帧动画中还有一套叫做样条关键帧动画(SplineKeyFrame),这个动画利用一个三次贝塞尔曲线能够更准确的控制动画的速率。 不...

wpf数据绑定更新通知

类似于这样子的;大致的意思是:一个代码变量,通过改变变量的值,绑定这个变量的这个圆颜色也在变化 就是一种心跳效果 在网上数据触发的感觉不多,废了不少时间,这里做个总结 1:通知 class NotifyBase : INotifyPropertyChanged { public event PropertyChangedEve...

[WPF](小结4)TreeView的数据分层模板

前边研究的是某控件嵌套某控件,这里相当于树嵌套树,但这里不能这么叫,树很特殊,它有一个分层数据模板:HierarchicalDataTemplate,现在来看如何使用, 第一:选构建题目类,再建一个选项类,题目类集合中的每个项包含一个选项类集合,即数组嵌套数组,C#语句如下: (为方便看清语句,类直接写在主程序中) C#代码如下:usingSyste...

WPF附加属性

1、定义:一个属性原来不属于某个对象,但由于某种需求而被后来附加上去。附加属性的本质是依赖属性。 2、作用:将属性与数据类型解耦,让数据类型的设计的更加灵活。 3、举例:Human,School。Human中的一个人,他如果在学校里,就会有成绩等;如果在公司里,他就有部门等。此时的成绩和部门就是附加属性。 4、使用: 4.1) 使用DependencyPr...

Wpf(Storyboard)动画简单实例

动画的三种变换方式 RotateTransform:旋转变换变化值:CenterX围绕转的圆心横坐标 CenterY纵坐标 Angle旋转角度(角度正负表示方向) ScaleTransform:缩放变换变化值:ScaleX横向放大倍数ScaleY纵向(负值时翻转) TranslateTransform:平移变换变化值:X横坐标Y纵坐标 其中 <...

WPF入门-使用C#创建简单应用

本文,你将熟悉在使用VS2019开发应用程序时可使用的许多工具、对话框和设计器。将创建一个“Hello World”应用程序、UI设计器、添加代码并调试错误。 先决条件: 安装Visual Studio 2019(16.3或者更高版本)。本文环境是16.8 一、创建项目   1、打开VS2019,   2、在‘开始’窗口,选择‘创建新项目’:      3...