【备忘】WPF基础

XAML

为了避免生成用户界面(GUI)的代码和基于用户操作执行的代码混合在一起。

名称空间

值得注意的名称空间:

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  • 前者是 WPF 的默认名称空间,声明了许多空间。
  • 后者用于声明 XAML 语言本身,指定的语言元素必须表明 x 前缀。

系统名称空间:

	xmlns:sys="clr-namespace:System;assembly=mscorlicb"

该名称空间允许直接使用 .NET Framework 内置类型。例如可以声明一个数组,成员是字符串类型。

尽管 XAML 是一种强大的用户界面声明方式,但他并不是一门编程语言。

虽然可以在 XAML 中直接嵌入C# 代码,但任何时候都不建议将代码和标记混合在一起。

代码隐藏文件

​ 它们就是普通C#文件,只不过其名称与XAML 文件相同,再加上 .cs 拓展名。(也可以任意命名)

XAML 文件中会自动添加属性

x:Class="Test.MainWindow"

控件

所谓控件,就是将程序代码和GUI预先打包到一起,可供重复利用。

属性

所有属性 都可以通过属性(Properties)面板来设置。

依赖属性

附加属性

附加属性(Attached Property)是一种在定义该属性的类实例的每个子对象上都可用的属性。

比如GridColumn Row 定义列和行,子控件方便排序。

通用控件事件

事件 说明
Click 在单击控件时引发。在某些情况下,这个事件也会在用户按下回车键时引发
DoubleClick 在双击控件件时引发。处理某些控件上的 Click 事件,如 Button 控件,表示永远不会调用 DoubleClick 事件
DragDrop 在完成拖放操作时引发。换言之,当一个对象被拖到控件上,然后用户释放鼠标按钮后,引发该事件
DragEnter 在被拖动的对象进入控件的边界时引发
DragLeave 在被拖动的对象移出控件的边界时引发
DragOver 在被拖动的对象放在控件上时引发
KeyDown 当控件有焦点时,按下一个键时引发该事件,这个事件总是在KeyPress 和KeyUp 之前引发
KeyPress 当控件有焦点时,按下一个键时发生该事件,这个事件总是在KeyDown 之后、KeyUp 之前引发。KeyDown 和KeyPress 的区别是 KeyDown 传送被按下的键的键盘码,而 KeyPress 传送被按下的键的char 值
KeyUp 当控件有焦点时,释放一个键时发生该事件,这个事件总是在KeyDown 和KeyPress 之后引发
GotFocus 在控件接手焦点时引发。不要用这个事件执行控件的有效性验证,而应使用 Validating 和Validated
LostFocus 在控件失去焦点时引发。不要用这个事件执行控件的有效性验证,而应使用 Validating 和Validated
MouseDown 在鼠标指针指向一个控件,且鼠标按钮被按下时引发,这与 Click 事件不同,因为在按钮被按下之后,且未被释放之前引发MouseDownMouseMove 在鼠标滑过控件时引发
MouseUp 在鼠标指针位于控件上,且鼠标按钮被释放时引发
Paint 绘制控件时引发
Validated 当控件的CausesValidation 属性设置为true, 且该控件获得焦点时, 引发该事件。 它在Validating事件之后发生,表示验证已经完成
Validating 当控件的CausesValidation 属性设置为true,且该控件获得焦点时,引发该事件。注意,被验证的控件是正在失去焦点的控件,而不是正在获得焦点的控件

路由事件

WPF 中存在一种路由事件(routed event)。标准的.NET事件会被显示订阅该事件的代码处理,并且事件只能被发送到这些订阅者哪里,路由事件的不同之处在于,可将是ijanfasong到包含该控件所在层次的所有空间。

路由命令

控件类型

分为类容空间项控件两大类。

  • 类容空间(如 BUTTON)只有一个 Content 属性,可将这个属性设置为其他任意的控件。
  • 项控件(如 GRID),可以插入多个控件作为其内容。

布局控件

所有内容布局控件都继承自抽象的 Panel 类。

TextBox

CheckBox

RaidoButton

ComboBox

ListBox

原文地址:https://www.cnblogs.com/zhuyulong/p/5570806.html