xaml学习笔记

1、什么是XAML

žXML 指可扩展标记语言(EXtensible Markup Language)
žXML 是一种标记语言,很类似 HTML
žXML 的设计宗旨是传输数据,而非显示数据
žXML 标签没有被预定义,需要自行定义标签
 
žXAML用于声明UI及UI元素的一种格式
žXAML用于声明样式和模板的格式,这些样式和模板应用于控件和 UI 的逻辑基础
žXAML 定义 UI 的可视外观,关联的代码隐藏文件定义逻辑
žXAML 可在 Expression Blend 与 Visual Studio 之间互换
 
2、XAML基本语法:
 
(1)命名空间
žXAML命名空间的概念和C#代码中的Using,VB.Net代码中的Import类似,ž为对象元素的实例化提供引用类库声明,ž编程框架能够区分用户声明的标记和框架声明的标记,并通过命名空间限定来消除可能的标记冲突
 
ž语法结构为“xmlns:”+“命名空间前缀名”,默认命名空间无需定义命名空间前缀名:
<Page

    x:Class="App1.MainPage"

    IsTabStop="false"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:local="using:App1"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    mc:Ignorable="d">

 上面的代码中

<Page>作为页面Root对象元素被声明,开始标签<Page>中,包含了多个“xmlns特性

XAML 语法规则中,“ xmlns 是属于强制关键字,被用来声明一个命名空间。
 
常见类型命名:
1. <Page> 作为页面 Root 对象元素被声明
2. 开始标签 <Page> 中,包含了多个“ xmlns 特性
3. XAML 语法规则中,“ xmlns 是属于强制关键字,被用来声明一个命名空间。
 
(2)对象声明:
ž使用开始标记和结束标记将对象实例化为XML格式的元素

  <Canvas>           

 </Canvas>

ž对象中可以包含其他对象

 <Canvas>

   <Rectangle></Rectangle>

 </Canvas>

ž若一个对象中不包含其他对象,可以使用一个自结束标记来声明对象

   <Rectangle/>

 

(3)属性

ž属性是对XAML元素特征进行描述的方法,ž属性不允许在XAML中重复设置多次,ž允许在托管代码中改变元素的属性值
ž只有实例化对象才可以设置实例属性,格式如下:

  <objectName propertyName=“propertyValue”/>

  或者

  <objectName propertyName=“propertyValue”>

  <objectName>

ž每个属性对应一个属性值,属性值类型必须与属性匹配
ž一个标记中可以设置对象的多个属性
 
ž某些属性可以使用属性元素语法来设置,格式为:

  <object>

    <object.property>

       <!—元素属性值-->

    </object.property>

  </object>

 

(4)附加属性

ž附加属性作用于支持附加属性的元素
ž
ž附加属性是由支持附加属性的父元素产生作用,支持附加属性的元素会继承所在的父元素的属性
ž
ž附加属性的格式:AttachedPropertyProvider.PropertyName
<Canvas>

<Rectangle Canvas.Left="50" Canvas.Top="50" Width="200" Height="150" RadiusX="10" RadiusY="10" Fill="Gold"/>

</Canvas>

(5)依赖属性

1. 依赖属性,英文称为 Dependency Properties ,是 Windows 8 Silverlight 特有的属性系统。
2. 在传统 .Net 应用开发中, CLR 属性是面向对象编程的基础,主要提供对私有字段的访问封装,开发人员可以使 用 get set 访问器实现读写属性操作。依赖属性和 CLR 属性类似,同样提供一个实例级私有字段的访问封装,通过 GetValue SetValue 访问器实现属性的读写操作。
3. 依赖属性最重要的一个特点是属性值依赖于一个或者多个数据源,提供这些数据源的方式也可以不同,例如,通过数据绑定提供数据源,通过动画,模板资源,样式等方式提供数据源等,在不同的方式数据源下,依赖属性可以实时对属性值进行改变。

<Page.Resources>

<Style x:Key="ButtonStyle" TargetType="Button">

  <Setter Property="Foreground" Value="Red"/>

  <Setter Property="FontSize" Value="24"/>

</Style>

</Page.Resources>



<Button Content="依赖属性测试" Style="{StaticResource ButtonStyle}" Width="240"/>

 

未完待续

你可能感兴趣的:(学习笔记)