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

【备忘】WPF基础的更多相关文章

  1. 个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 2

    接上篇:个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 1 Step1 在主程序中设置连接数据库 从Model类库的 App.Config 把数据库字符串拷贝出来, ...

  2. Linux基础之常用基本命令备忘

    Linux基础之常用基本命令备忘 PWD   查询当前所在Linux上的位置 /         根目录 CD(change directory)切换目录  语法 CD /(注意添加空格)   LS ...

  3. UITextView -- 基础备忘

    UITextView 这篇文章只涉及到基本的使用,日后会写一些关于结合TextKit的备忘 基本属性 let screenSize = UIScreen.mainScreen().bounds.siz ...

  4. Nmap备忘单:从探索到漏洞利用(Part 4)

    这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...

  5. HTML5终极备忘大全

    二.文字备忘之标签 HTML5中新增的标签 <article> 定义文章 <aside> 定义页面内容旁边的内容 <audio> 定义声音内容 <canvas ...

  6. [转] HTML5终极备忘大全(图片版+文字版)---张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1544 一.前言兼图片 ...

  7. Table view 备忘

    Table view 备忘 本篇会以备忘为主,主要是一些基础的代理方法和数据源方法具体的优化好点子会后续跟上. Table view的数据源方法 必须实现的数据源方法 // 返回每一行的cell,可以 ...

  8. AngularJS之备忘与诀窍

    译自:<angularjs> 备忘与诀窍 目前为止,之前的章节已经覆盖了Angular所有功能结构中的大多数,包括指令,服务,控制器,资源以及其它内容.但是我们知道有时候仅仅阅读是不够的. ...

  9. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  10. Express模版引擎hbs备忘

    最近几天折腾了下express,想找个合适的模版引擎,下面是一些折腾过程的备忘 选择标准 选择一门模版语言时,可能会考虑的几点 语法友好(micro tmpl那种语法真是够了) 支持模版嵌套(子模版的 ...

随机推荐

  1. android 连接USB按power键锁屏2声锁屏音

    alps\frameworks\base\packages\Keyguard\src\com\android\keyguard\KeyguardViewMediator.java #1384 行左右: ...

  2. matplotlib tricks(一)—— 多类别数据的 scatter(cmap)

    cmap 的选择: binary seismic Reds 多类别数据的 scatter(逐点散列),在 matplotlib 中的实现关键在于,color关键字的定义: def plot_scatt ...

  3. Erlang入门

    Erlang简史(翻译) Erlang入门(二)—并发编程 Erlang入门(三)——分布式编程 Erlang入门(四)——错误处理和鲁棒性 Erlang入门(五)——补遗

  4. erlang app 文件

    http://hje.iteye.com/blog/1211734 应用的概念¶ 当我们写了实现特定功能的代码之后,我们可能想将代码转成一个 应用 (application),这是可以作为一个单元启动 ...

  5. 【codeforces 777B】Game of Credit Cards

    [题目链接]:http://codeforces.com/contest/777/problem/B [题意] 等价题意: 两个人都有n个数字, 然后两个人的数字进行比较; 数字小的那个人得到一个嘲讽 ...

  6. SQL表的默认常用数据类型

    分类 字段类型 描述 整数 bit 0或1的整型数字 int 从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数字 smallint 从-2^15(-32 ...

  7. centos安装启动ssh服务

    centos安装启动ssh服务 #rpm -qa |grep ssh 检查是否装了SSH包 没有的话yum install openssh-server #chkconfig --list sshd ...

  8. Linux下用GCC

    Linux下用GCC 前言 离职前对做过的支付系统进行了一番#总结,继续完善我的C服务器. 本想着接下来大概实现一下 CGI 协议,但是实现过程中被一个问题卡住了: C进程与php进程的交互数据类型问 ...

  9. ThoughtWorks、Teambition、Trello、Slack、DevCloud 主流敏捷软件开发工具平台比较

    在大公司做了6年程序员,2年项目经理的小王,正在创业公司迎来他焦虑的而立之年. 但是对于3个月前加入创业公司的决定,他现在有些烦躁和怀疑人生.在他过往的经验看来,公司新接的小项目,在过去的大公司里1个 ...

  10. 读取xml格式的字符串和上下文中的xml数据

    1.读取xml格式的字符串 假设有一段下面的xml格式的字符串: <xml>     <return_code><![CDATA[SUCCESS]]></re ...