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"/>

 

未完待续

转载于:https://www.cnblogs.com/lhyun/p/3427041.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值