zoukankan      html  css  js  c++  java
  • XAML 属性元素,标记扩展和注释

     这节来讲一下XAML中的属性元素,标记扩展,和注释。

    属性元素

        一般的,我们想要对一个标签的属性赋值,可以直接在标签内部键入属性名给其赋值,如我们给button的Content属性赋值:

    <Button Content="I am Button" />

        或者我们在后台通过标签的Name找到这个标签,用代码为其赋值。

        属性元素则是为标签属性赋值的第三种方法。

        顾名思义,属性元素是以元素的形式来表达一个标签的属性,它的语法如下:

    <tag>  
        <tag.property>   
             value 
         </tag.property>
    </tag>

        上方给button的Content赋值的代码就可以改为以下形式:

    <Button>
      <Button.Content>
          I am button
      </Button.Content>
    </Button>

        我们前几节讲到,标签有非空和空标签之分,非空标签是可以有自己的内容的标签,所以我们为标签的内容赋值时,是可以省略属性元素的,以上代码就可以简化为:

    <Button> I am button</Button>

        系统会默认将“I am button” 赋值给Content,只有内容可以这么做,其它的属性若要使用属性元素赋值都是需要显示声明的。

        你可能会疑问,属性标签看起来让我们的代码变得复杂了,当然,如果给元素的属性赋一些简单的值,我们不需要用属性元素,就像宽,高这样的属性,我们直接在元素内部赋值要简单的多,但是当我们遇到一些复杂的赋值情况,属性元素的优势就显示出来了,再拿button距离,我想让button的内容是一个图标加文字,这时候,显然在属性内部直接赋值是无法做到了,我们要么在后台使用代码,要么就需要用属性元素了,请看实例:

    <Button>
        <WrapPanel>  
            <materialDesign:PackIcon 
                Width="16"
                Height="16"
                Margin="0 0 5 0"
                VerticalAlignment="Center"
                Foreground="White"
                Kind="Logout" />
            <TextBlock TextWrapping="Wrap" Text="退出登录" FontSize="15" VerticalAlignment="Center" />
        </WrapPanel> 
    </Button>

        效果如下:

        在button内部放了一个WrapPanel元素,在这种情况下,属性元素是最简单合适的,毕竟C#代码是用来写逻辑的,不应过多涉及UI的编写。

    标记扩展

        标记扩展是xmal最特色的一个东西,它同样是给属性赋值的一种形式,但是标记扩展正如它的名字一样,是对属性赋值的扩展,它是我们后续要讲的MVVM模式中控件和数据的桥梁。

        标记扩展是由大括号括起来的一些内容组成的,请看下面的代码:

    <TextBlock x:Name="text_show" Text="你好"/>
    <Button Width="50" Height="30" Content="{Binding Text,Source={x:Reference text_show}}"></Button>
    

      

        上述代码中{Binding Text,Source={x:Reference text_show}}就是标记扩展,它使用Binding命令和Source命令将button的内容跟TextBlock的Text属性绑定了起来。当我们更改TextBlock的Text属性的值的时候,Button按钮的值也会变,程序运行如下:

        后续的MVVM章节,我们会讲控件的值与VM页面中的属性绑定,就是依赖标记扩展这个语法。当我们改变VM属性值时,前台的控件值就会变,这就是WPF与众不同的地方:数据驱动控件。初学者,可以先做了解,后续我们会持续接触标记扩展,而且也只有在代码中才能更好的理解标记扩展的强大。

    注释

        最后讲一下xaml中的注释。

        使用<!-- 注释内容 --> 来注释一段xaml代码,但是需要注意一下几点:

        1.注释只能出现在开始标签和结束标签之间,也就是只能出现在内容区域

        2.不能注释标签的属性

        3.不能嵌套使用注释

    本节到此结束...

  • 相关阅读:
    (转)CSS3之pointer-events(屏蔽鼠标事件)属性说明
    Linux下source命令详解
    控制台操作mysql常用命令
    解决beego中同时开启http和https时,https端口占用问题
    有关亚马逊云的使用链接收集
    favicon.ico--网站标题小图片二三事
    网络博客
    Gitbook 命令行工具
    Markdown 轻量级标记语言
    SVN 集中式版本控制系统
  • 原文地址:https://www.cnblogs.com/charlesmvp/p/14782728.html
Copyright © 2011-2022 走看看