WPF初学要点(笔记一)

1. XAML

XAML是一种使用XML语法,并且通过层级式声明方式将控件添加到用户界面的语言。
注意:当你在面试中被问到"什么是XAML?"时,
你可以回答:XAML是WPF技术中专门用于设计UI的语言。–by《深入浅出WPF》刘铁猛

2. 数据绑定

可使用数据绑定将控件的某些属性和其他控件的值链接起来。也可以通过定义资源(DataContext)的方式将当前视图之外的类中所定义的代码(类的属性)用作数据源,既可以是属性的值,也可以是控件的内容(ElementName)。
DataContext可用于指定现有对象实例的绑定源,从而允许绑定到应用程序其他位置所创建的实例。
绑定到本地对象(Element),如果在使用对象的控件所在的上下文环境(即相同的XAML代码块)中,就可以通过设置绑定的ElementName属性来指定绑定源。
个人见解:
有些类似于前端中的Vue,在Vue.js中定义对象的一系列属性与事件,然后在页面的标签中使用:data="PropertyName"绑定到Vue.js定义的对象上,对象是什么值,控件中的值就是什么。
WPF数据绑定
(个人见解,欢迎大佬指正( • ̀ω•́ )✧)

3. 路由事件

路由事件是WPF中的特殊事件,主要有两种事件:冒泡事件(bubbling event)和下钻事件(tunneling event)。冒泡事件首先在触发他们的控件上调用,然后一级一级往上传递,直到视图树的根元素。而下钻事件则不同,是从根元素向用户触发的控件传递。而这两种事件都可以通过将事件参数的Handled属性设置为true的方式来终止。

4. INotifyPropertyChanged接口

INotifyPropertyChanged接口由WPF视图中使用的一个类来实现(控件所绑定数据的资源类)。当该类的属性设置器(set)被调用时,就会触发PropertyChanged事件,并在事件中包含发生更改的属性名。所有与触发事件的属性绑定在一起控件属性都会得到通知,以便相应地更新自己的值。

5. ObservableCollection集合

ObservableCollection集合的一个作用是实现INotifyPropertyChanged接口。当我们希望将属性或值的列表提供给WPF视图进行数据绑定时,可使用这一特殊集合。

6. 内容控件

内容控件可以在其内容中包含一个控件。例如,Button就是一个内容控件(Image控件就不行)。控件可以是Grid或StackPanel;并且可以进行复杂的自定义。

7. 项控件

项控件可以在其内容中包含一系列控件。例如ListBox。列表中的每个控件都可以进行自定义。

8. 布局控件

有助于创建视图的控件:

  • Canvas 允许显式放置控件,但其他功能较少。
  • StackPanel 在水平或垂直方向上排列控件。
  • WrapPanel 可根据面板方向排列控件,并自动换到下一行或下一列。
  • DockPanel 可让控件停靠到控件(父级)的边上,或填满整个内容区域。
  • Grid 可定义多行或多列,并借助这些行列来放置控件。

9. UI控件

UI控件用于在视图中显示特定内容,通常使用布局控件来帮助摆放他们。

  • Label 控件用于显示简短文字(例如输入框前的文字描述)。
  • TextBlock 控件用于显示可能需要多行显示的文字。
  • TextBox 控件让用户可以输入需要的文字内容(类似于Input输入框)。
  • Button 控件让用户可以执行某项操作。
  • Image 控件用于显示一幅图片。
  • CheckBox 控件让用户可以回答诸如“你早饭吃了吗?”的是/否问题(选择框)。
  • RadioButton 控件让用户可以从多个选项中选择一项内容(单选框)。
  • ComboBox 控件用于显示包含一系列可选择的下拉列表,用户可以从列表中选择一项。该控件还可显示一个TextBox,让用户输入其他选项。
  • ListBox 控件也可以通过列表形式显示选项。与ComboBox不同的是,ListBox总是展开的。他还允许选择多项。
  • TabControl 控件允许将控件分组放到不同页面上。

以上均为个人笔记加见解,因本人刚涉及该知识,如有不足之处还望大佬指正。◕◡◕。

猜你喜欢

转载自blog.csdn.net/weixin_44074174/article/details/115036622