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 8Silverlight特有的属性系统。
2.在传统.Net应用开发中,CLR属性是面向对象编程的基础,主要提供对私有字段的访问封装,开发人员可以使 用getset访问器实现读写属性操作。依赖属性和CLR属性类似,同样提供一个实例级私有字段的访问封装,通过GetValueSetValue访问器实现属性的读写操作。
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"/>
未完待续
原文地址:https://www.cnblogs.com/lhyun/p/3427041.html