XAML 概述
XAML定义
XAML的全称是extension Application Markup Language ,即可扩展应用程序标记语言。它在桌面开发及富媒体网络程序的开发找中扮演了HTML+CSS+JavaScript的角色,成为设计师与程序员之间沟通的桥梁。
XMAL的优点
1.XAML可以设计出专业的UI和动画---------好用
2.XAML不需要专业的编程知识,它简单易懂,结构清晰-------易学
3.XAML使设计师能够直接参与软件开发,随时沟通、无需二次转化--------高效
4.真正实现了逻辑与UI的剥离
WPF 概述
WPF(Windows Presentation Foundation)中文译为:Windows 展现框架。桌面应用程序开发框架
第一个WPF程序
- WPF 的顶级元素只能有 3 种:Windows、Page、Application
- x:Class=“MyFirstWPFApp.MainWindow”
代表本类的类限定名,是命名空间+类名。也就是当前 xmal 对应的后台代码文件。 - xmlns:x=“http://schemas.microsoft.com/winfx/2006/xaml”
这个命名空间是XMAL命名空间。它包含各种XAML实用特性,这些特性可以影响文档的解析方式。该命名空间被映射为前缀x。也就是说可以通过在元素命名之前放置命名空间前缀x来使用这个命名空间。例如:<x:abc> - StartupUri=“MainWindow.xaml” 表示默认的启动窗体,这个窗体就是主窗体。
- Application 这个类的实例就代表了应用程序本身,通过它就能控制应用程序的启动、停止、事件处理等一系列的任务。
- Application 常用的方法如下:
(1)Run()方法,将已经创建的应用程序对象开始运行,也成为激活。调用该方法时,可以带一个窗体名作为实参,也可以无参数。这个方法会触发 Appliction 的 Startup 事件。
(2)Shutdown()方法,无论用哪种方式启动的应用程序,都可以通过 Application.Current 来作为 Application 的实例,并调用 Shutdown()方法主动结束程序的运行。当程序退出的时候,触发 Exit 事件。 - 每个Xaml文档只能包含一个顶级元素
- Xaml 区分大小写,对于属性而言通常不de区分大小写
- .xaml 文档最终被转换成BAML作为资源的形式嵌入到程序集中。当应用程序工作的时候,会从构造函数的实现方法中提取baml 资源,并用它来构建用户,通过解析BAML,会创建每个控件对象,设置属性,关联事件等等。。。(baml 为xaml 的 二进制形式,运行时更快解析)
Xaml 资源被解析的过程
- xaml 文档被转换成baml 资源被嵌入到DLL 或者程序集当中
- 创建类的实例,即调用InitializeComponent() ,通过该方法获取程序集当中的BAML资源,通过解析BAML控件对象,设置属性等。
- 也可以通过运行时,自行去加载当前程序集的资源。例如:当程序需要支持多样式的主题时,则可以取主题样式,供用户选择。