前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UWP基础教程 - XAML对象元素和属性

UWP基础教程 - XAML对象元素和属性

作者头像
陈仁松
发布2018-03-20 16:32:01
1.3K0
发布2018-03-20 16:32:01
举报

元素

XAML的对象元素是指XAML中一个完整的节点,一个XAML文件始终只有一个根元素,在Windows 10 UWP 应用中通常是采用Page作为根元素,这个根元素就是当前页面最顶层的元素,而其他元素都是子元素。在XAML中根元素有且只能有一个,而子元素可以有一个或者多个,这是由根元素来决定的。 在XAML代码中,一个Element(元素)通常是一个Object(对象),在代码中映射对应.Net类。简单理解,在XAML中声明一个Element元素,其实就是对相应公共语言运行类库进行一次实例化操作。  XAML代码声明一个元素对象,必须由一个开始标签“”和一个结束标签“”构成,基本语法如下:

<Element></Element>

或者你也可以这么来写

<Element/>

该语法格式省略</元素对象>结束标签,使用“/”符号作为元素结束符。 值得注意的是,XAML中Elements(元素)和Attributes(特性)名称是字符大小写敏感型,也就是大写和小写字符命名具有不同的含义。在上述代码中,如果使用<element>,XAML语法解析器将返回错误信息,无法对Element元素进行实例化。

属性

在XAML中,属性也是可以使用多种语法来进行设置的,不同的属性类型也有不同的设置方式,并不是所有的属性设置都是通用的。总的来说,可以通过下面的三种方式来设置对象属性。

  • 使用Attribute特性语法
  • 使用Property元素语法
  • 使用隐式对象语法

这三种设置属性的方法,并不是对所有属性都适用的,有些属性只适用一种方式来设置;有些熟悉则可以使用多种方式来设置,这取决于属性对象的特性。下面我会详细的介绍这三种设置方法。

1、使用Attribute特性语法

<元素对象 属性名=“属性值” 属性名=“属性值” …></元素对象> 

或者

<元素对象 属性名=“属性值” 属性名=“属性值” …/>

下面来看一个具体的实例

<Rectange x:Name="rectange" Width="100" Height="100" Fill="Red" />

由于元素对象属性名在开始标签内部,所以这种表达方式也被称为“内联属性”。

XAML分析器会把上面的代码解析成为C#的类,当然也可以直接使用C#的代码来实现元素和属性设置,下面来看看上面这个例子的C#代码实现

Rectange r = new Rectange();
r.Name = "rectange";
r.Width = 100.0;
r.Height = 100.0;
r.Fill = new SoildColorBrush(Colors.Red);

2、使用Property元素语法

使用XAML的Attribute特性可以简单快捷的设置对象的属性,其属性值局限于简单的字符形式。在实际项目中,经常会遇到复合型控件或者自定义控件引用较为复杂的对象属性,以达到个性化的效果。对此Attribute特性无法支持,从而引入Property属性元素的概念。 下面用伪代码来表示使用Property元素语法来实现属性的设置

<元素对象>
  <元素对象.属性>
     <属性设置器 属性值=“”>
  </元素对象.属性>
</元素对象>

其中,属性设置器可以设置为较为复杂的对象元素,例如布局控件元素,自定义控件元素等。 下面是用一个矩形控件演示Property属性的作用,设置矩形的填充使用Fill属性,使用Attribute特性设置上面的Rectange的内容,如下代码:

<Rectange x:Name="rectange" Width="100" Height="100">
    <Rectange.Fill>
        <SoildColorBrush Color = "Red"/>
    </Rectange.Fill>
</Rectange>

再来看一个Button中添加一个文字

        <Button>
            <Button.Content>
                <TextBlock Text="陈仁松XAML教程"/>
            </Button.Content>
        </Button>

还可以这么写

        <Button>
            <Button.Content>
                陈仁松XAML教程
            </Button.Content>
        </Button>

其运行效果和Attribute特性设置按钮内容相同。从示例中可以看出,使用元素对象的Property属性设置方法,比Attribute特性要灵活和强大。

3、使用隐式对象语法

通过学习Property属性元素,可以了解到XAML的元素对象属性,不仅包含单一对象属性,同时还支持复杂属性,属性值可以为简单的字符数据类型,同时也可以是一个数据集。 为了简化XAML代码复杂性,提高代码易读性,XAML提供隐式数据集设置对象属性方法。上面设置Button的Content属性还可以这样写:

        <Button>
            <TextBlock Text="陈仁松XAML教程"/>
        </Button>

或者

        <Button>
            陈仁松XAML教程
        </Button>

从对比以上代码可以看出<Button.Content>被删除后,仍旧可以对Content进行赋值操作。其运行结果和使用Property属性元素属性赋值相同,使用隐式对象语法属性赋值在Windows 10 UWP自定义控件模板和样式中经常用到,是常用属性赋值方法之一。

本篇就介绍到这里,下一篇将会给大家介绍XAML依赖属性和附加属性。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 元素
  • 属性
    • 1、使用Attribute特性语法
      • 2、使用Property元素语法
        • 3、使用隐式对象语法
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档