Window、Grid、TextBox、Button等,都叫元素

xaml文档中,<>用来定义标签,标签可以用来描述元素或元素的属性,如:
  <Window>
    <Window.Resources>
    </Window.Resources>
  </Window>
Window是元素,Resources是Window的一个属性

标签内容可以包含其他元素的标签,如
  <Window>
    <Grid>
      <Button />
    </Grid>
  </Window>
有些元素只能包含一个子元素,有些能包含很多子元素。

每个元素都可以有属性,如
  <Window>
    <Grid>
      <Button Height = "30"/>
    </Grid>
  </Window>

描述元素的属性还可以用属性标签的方式来写
  <Window>
    <Grid>
      <Button>
        <Button.Height>40</Button.Height>
      </Button>
    </Grid>
  </Window>
属性标签更有层次,但超级啰嗦,没有使用的必要

属性的值可以是字符串,也可以用标记扩展的形式完成类似绑定数据等复杂的操作。
  <Window>
    <Grid>
      <TextBox Text ="{Binding ElementName= slider1, Path=Value, Mode=OneWay}"/>
      <Slider Height="19" Name="slider1" Width="139" />
    </Grid>
  </Window>

用属性标签的写法,可以写成这样
  <TextBox.Text>
    <Binding ElementName ="slider1" Path ="Value" Mode="OneWay"/>
   </TextBox.Text>
这种写法在vs2010下很不给力,智能提示不到位……

属性不仅可以是元素自身的,也可以是其他元素的属性
引用其他元素属性的用法叫做附加属性,被引用的元素必须要写明所在的命名空间前缀
  <Window>
    <Grid>
      <Button x:Name = "btn1" Grid.Row = "2"/>
    </Grid>
  </Window>

Grid.Row没有前缀?那是因为有个默认的命名空间xmlns,使用它包含的类时就不用写明命名空间前缀

命名空间在根元素的属性中定义
  <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="App1.Window3">

  </Window>

xmlns定义的即是默认的命名空间,这里把它指向了WPF所有的控件类。
xmlns:x 定义了另一个命名空间,这里的x叫做命名空间前缀,理解成简称也可以。
x:Class 是附加属性,指明后置代码中的cs类名称

x命名空间下的类用途乱七八糟的,记住名字就行
  x:Name
  x:Class
  x:Subclass
  x:Type
  x:Null
  x:Key
  x:Array
  x:Static
  x:Shared

  x:Code
  x:XData

xmal 是标记语言,如同html一样。类似Jquery,.net也提供了两个帮助类:VisualTreeHelper、LogicalTreeHelper

WPF学习(一) - XAML的更多相关文章

  1. WPF学习笔记-用Expression Design制作矢量图然后导出为XAML

    WPF学习笔记-用Expression Design制作矢量图然后导出为XAML 第一次用Windows live writer写东西,感觉不错,哈哈~~ 1.在白纸上完全凭感觉,想象来画图难度很大, ...

  2. 学习WPF——了解WPF中的XAML

    XAML的简单说明 XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面 XAML中的每一个元素都映射为.NET类的一个实例,例如<Button>映射为WPF的Butt ...

  3. WPF学习05:2D绘图 使用Transform进行控件变形

    在WPF学习04:2D绘图 使用Shape绘基本图形中,我们了解了如何绘制基本的图形. 这一次,我们进一步,研究如何将图形变形. 例子 一个三角形,经Transform形成组合图形: XAML代码: ...

  4. WPF学习之资源-Resources

    WPF学习之资源-Resources WPF通过资源来保存一些可以被重复利用的样式,对象定义以及一些传统的资源如二进制数据,图片等等,而在其支持上也更能体现出这些资源定义的优越性.比如通过Resour ...

  5. WPF学习之路初识

    WPF学习之路初识   WPF 介绍 .NET Framework 4 .NET Framework 3.5 .NET Framework 3.0 Windows Presentation Found ...

  6. WPF学习拾遗(二)TextBlock换行

    原文:WPF学习拾遗(二)TextBlock换行 下午在帮组里的同事解决一个小问题,为了以后方便,把就把它收集一下吧. 新建一个TextBlock作为最基础的一个控件,他所携带的功能相对于其他的控件要 ...

  7. WPF学习(8)数据绑定

    说到数据绑定,其实这并不是一个新的玩意儿.了解asp.net的朋友都知道,在asp.net中已经用到了这个概念,例如Repeater等的数据绑定.那么,在WPF中的数据绑定相比较传统的asp.net中 ...

  8. WPF 学习笔记-在WPF下创建托盘图标

    原文:WPF 学习笔记-在WPF下创建托盘图标 首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Co ...

  9. (转)WPF学习资源整理

    由于笔者正在学习WPF,所以整理出网络中部分WPF的学习资源,希望对同样在学习WPF的朋友们有所帮助. 首推刘铁猛的<深入浅出WPF>系列博文 1.深入浅出WPF(1)——什么是WPFht ...

  10. WPF学习资源整理

    WPF(WindowsPresentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分.它提供了统一的编程模型 ...

随机推荐

  1. category的概念

    category 的意思应该是为基类添加一个子类的声明方法 可以在创建基类对象的时候访问到子类的对象方法 category 可以说是 类的扩展 也可以说是 将类分成了几个模块 需要注意的是 在cate ...

  2. 【转】JS回调函数--简单易懂有实例

    JS回调函数--简单易懂有实例 初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is ...

  3. 关于C语言中EOF的一点认识

    总结来说:EOF(即End Of File)是一个文件结束的标记,当文件被读取到EOF位置时,参与读取的函数会返回整型值 -1,这时要注意的是:这个值被赋值给有符号char类型时是0xff,被赋值给有 ...

  4. 洛谷1613 跑路 倍增 + Floyd

    首先,我们一定要认识到本题中的最短时间所对应的道路不一定是在起点到终点的最短路.例如,起点到终点的最短路为 151515 ,那么对 151515 进行二进制拆分的话是 111111111111 ,这时 ...

  5. sublime text3安装js提示的插件

    今天安装Sublime Text3的js插件,在网上查了很多资料,为了方便以后看,写一个安装插件的总结和方法. 要安装js相关的插件,就要先安装一个Package Control(插件管理器)的插件, ...

  6. Vue的数据依赖实现原理简析

    首先让我们从最简单的一个实例Vue入手: const app = new Vue({ // options 传入一个选项obj.这个obj即对于这个vue实例的初始化 }) 通过查阅文档,我们可以知道 ...

  7. 2019-03-25 Python Pandas 基本操作

    新建表 data1 = { "name": ["Tom", "Bob", "Mary", "James&quo ...

  8. css不定高度实现垂直居中

    1.不知道自己高度和父容器高度的情况下, 利用绝对定位只需要以下三行: parentElement{ position:relative; } childElement{ position: abso ...

  9. Spring MVC学习总结(7)——Spring MVC整合Ehcache缓存框架

    Ehcache算是当前比较流行的缓存框架,使用缓存可以极大的缓解服务器和数据库的压力,提高访问效率,提高服务器的并发能力.接下来我们看怎么把缓存使用起来. SpringMVC集成Ehcache所需的j ...

  10. mybatis插入操作时,返回自增主键id

    mapper.xml 代码 <insert id="insert" parameterType="com.Student" > <select ...