设为首页 加入收藏

TOP

04.移动先行之谁主沉浮----XAML的探索(一)
2017-10-11 16:04:46 】 浏览:4665
Tags:04. 移动 先行 沉浮 ----XAML 探索

如果移动方向有任何问题请参考===> 异常处理汇总-移动系列(点)

移动先行之谁主沉浮? 带着你的Net飞奔吧! 链接======>(点)

 

XMAL引入

XAML 类似于 HTML,是一种特殊的XML语言

XAML本质上属于一种.NET Programming Language

主要应用在 Windows 8、Windows Phone、Silverlight 和 WPF 中

 

1.XMAL 命名空间的声明

分析一下头文件

详细注解

在属性里面改过名字后就会以x:开头

补充:xmlns(XML Namespace)默认命名空间==>xmlns不是XAML中特有或特别定义的,它是XML具备的,目的是为了约束XML的文档结构xmlns:d 和 xmlsn:ms 是为 Visual Studio 设计视图服务的,不会对程序造成任何影响

2.XAML 创建对象元素

1.标签名即控件名称

2.一个 XAML 文件只允许有一个根对象元素 Page(类似于xml根节点


3.标签属性或子标签为控件对象属性操作


4.每个 XAML 标签都会有一个相对应的类型


5.每声明一个 XAML 节点就相当于创建相应类型的对象
6.在哪个元素结点下添加标签就相当在哪个对象下添加对象

3.XAML 设置元素对象属性(四种语法)

 

  1.键值语法:依靠内置转换器去实现(可以是文本块,按钮内容,背景图片等)
    属性键值语法,即 PropName=“PropValue”;
    绝大多数属性都是使用属性键值的形式来操作;
    要求属性类型必须为一些“简单的/可以自动转换的”类型(解释转换器带来的效果)

  比如:水平对齐方式应该是枚举类型

  

  但,键值语法给他赋值的是字符串,同样能达到效果====>可以自动转换(内置属性类型转换器

  

  补充:

    只有实例化对象才可以设置实例属性,格式如下:

      <objectName propertyName=“propertyValue”/>

      或者

      <objectName propertyName=“propertyValue”>

      </objectName>

  每个属性对应一个属性值,属性值类型必须与属性匹配

  一个标记中可以设置对象的多个属性

  objectName是要实例化的对象,propertyName是需要设置的属性名称,propertyValue是属性的值

  比如:

  


  2.属性元素语法;文本块值,按钮内容,背景图片    

  某些属性可以使用属性元素语法来设置,格式为:

    <object>

        <object.property>

            <!—元素属性值-->

        </object.property>

      </object>

  如果一个对象的属性是一个复杂类型,不能够由简单的字符串直接表示的时候,这时需要用到属性元素的语法:

  <标签名>

      <标签名.属性名>

          <属性值/>

      </标签名.属性名>

  </标签名>

  文本块值,按钮内容,背景图片

比如:

  

效果:

  


  3.默认属性语法:只是方便,语法糖(看特性标签秒懂)
    默认属性语法;只是方便语法糖
    对于大多数对象元素都有一个默认属性;
    直接将元素的 “InnerText” 设置为属性值:
    例如:
    <Button x:Name="btn1" Content="Hello"/>
    <Button x:Name="btn2">
      World
    </Button>
    通过特性标签知道默认属性

 

同样的可以看一下Grid(类似于表格)的默认属性(进父类)==>Children

那么完整写法就是:(当然了,我们平时写是没有必要的,这边只是探索一下本质)

同样的,我们可以反推==>(刚才正推,现在反推)因为Button有一个默认属性是Content,

那么,我们是不是可以用下面这个写法呢?(事实证明正确

写法一:<Button><x:String>羊毛头</x:String></Button>

写法二:<Button>羊毛头</Button>

 

其实里面还是可以放图标之类的,这里就不详解了,来两个图,你们自己练练吧

 


  4.隐式集合语法
  元素支持一个属性元素的集合,才使用集合语法进行设置属性

  使用托管代码的Add方法来增加更多的集合元素

  本质是向对象的集合中添加属性项

  在此之前我们考虑的都是非集合性质的属性;

  对于一个集合类的属性可以用重复子元素的方式实现设置值:

    <Grid>
      <Grid.Children>
        <TextBlock>Hello1</TextBlock>
        <TextBlock>Hello2</TextBlock>
        <TextBlock>Hello3</TextBlock>
        <TextBlock>Hello4</TextBlock>
        <TextBlock>Hello5</TextBlock>
      </Grid.Children>
    </Grid>

 

  不同的属性类型我们可以选择不同的设置方式;
    简单类型数据,比如字符串、数字之类的使用键值形式;
    复杂类型数据,比如背景图片使用属性元素形式;
    集合性质使用集合语法;

 4.名称范围 (x:) 属性

 

X:Class

配置 XAML 编译,在标记和代码隐藏之间连接分部类。代码分部类在一个独立的代码文件中定义,标记分部类由代码是由 XAML 在编译过程间创建。
<object
x:Class="namespace.classname"...>
...
</object>

 

x:FieldModifier

 修改 XAML 编译行为,使指定对象引用的字段被定义有 public 访问权限而不是默认的 private 行为。

语法:
<object
x:FieldModifier="public"
... />

 

x:Key
唯一标识作为资源被创建和引用的元素,这些资源存在于一个 ResourceDictionary 中。
XAML 属性使用方法:
<ResourceDictionary>
<object x:Key="stringKeyValue".../&g

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇xaml中Style的继承 下一篇04.移动先行之谁主沉浮----XAML的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目