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

了解XAML

VisualStudio创建一个窗口,默认情况下产生的代码如下:
这段代码中包含两个标记元素,一个是Window,一个是Grid
Window是WPF顶级元素的一种,还有另外两种顶级元素Page和Application
Window
用于描述一个窗口
Page
和Window类似,但它用于可导航的应用程序
Application
用于定义应用程序资源和启动设置
任何一个XAML文档只能拥有一个顶级元素

属性

窗口标签中Title、Height、Width都是窗口的属性
在XAML文件中属性的值的类型总是字符串,
但XAML的解析器可以把这些字符串转换成.NET的任意类型
 

名称空间

在上面代码中,用xmlns属性来标记此文档从属于哪个名称空间
为什么需要名称空间呢?
如果我们在第三方组件中定义了Window类,如果没有一个名称空间做限定的话,
编译器不知道我们将使用哪个Window类型来渲染窗口
我们在上面的代码中,看到了两个名称空间,一个是WPF核心名称空间、一个是XAML名称空间
WPF核心名称空间
包含所有WPF类,包含用来构建用户界面的控件,是文档的默认名称空间
XAML名称空间
包含各种XAML实用特性,这些特性可以影响文档的解释方式,该名称空间被映射为前缀x,使用前需要标注前缀x,比如:<x:ElementName>
有了名称空间的限定,我们直接书写的<Grid>标签,才可以映射到System.Windows.Controls.Grid类上

代码隐藏类

XAML创建用户界面,但交互规则还是需要.NET语言编写
x:Class属性标记着与该XAML文件相配合的.NET类
注意这个类是一个“部分类”
这个部分类的构造函数中调用了InitializeComponent方法,
这个方法负责创建控件对象、设置属性、绑定事件、构造用户界面等工作

复杂属性

有些属性的值不是一个简单类型,而是一个对象,不如下面这个Grid的背景颜色
我们现在只要知道XAML解析器也能创建出复杂属性对应的值即可

标记扩展

如果我们希望把属性值绑定为一个已经存在的对象,那么我们可以使用静态标记扩展
标记扩展还有很多其他的用法,我们以后再聊
这里也涉及到了属性绑定,我们以后再聊

附加属性

对于嵌套的元素,子元素可以使用父元素定义的一些属性,这类属性就是附加属性
在WPF中附加属性多用于布局
修改记录

C#之XMAL与WPF的更多相关文章

  1. C# XMAL与WPF

    通过老师上课的解释和我下课后的网上查询,我了解到了一些关于这三者的关系.XAML是.NET体系开发程序或者网页时前台编程的一种布局方式或者说开发语言,可以比较自由的用标签的方式进行布局,借鉴了HTML ...

  2. WPF svg 转 xmal

    原文:WPF svg 转 xmal 今天wpf里面要用矢量图,美工出的是svg格式的,需要将svg格式的转换为xaml 1.第一个尝试是安装Inkscape,这个软件可以直接将svg另存为xaml,但 ...

  3. wpf XMAL中隐藏控件

    原文:wpf XMAL中隐藏控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a771948524/article/details/9264569 ...

  4. XMAL语法系列之-(2)---WPF控件继承图

    WPF控件继承图 1 FrameworkElement 1.1 Panel(面板类元素) 1.1.1 Canvas 1.1.2 DockPanel 1.1.3 Grid 1.1.4 TabPanel ...

  5. WPF xmal绑定数据,当显示数据过长用省略号代替的方法

    有时候会遇到这种情况,用了数据绑定显示的数据太长时,如何让过长的数据显示规定的长度,多余的用省略号代替呢,自己写了个简单的小例子和大家分享一下^_^,我也是学习WPF不久,这是我第一次写博客,有问题还 ...

  6. 3 WPF之从0开始学习XMAL

    转载:http://blog.csdn.net/fwj380891124/article/details/8088233   剖析最简单的XMAL代码: <Window x:Class=&quo ...

  7. WPF:xmal 静动态资源

    <StackPanel.Resources> <SolidColorBrush x:Key="myBrush" Color="Teal"/&g ...

  8. wpf xmal基础

    1.名称空间的引用 比如想使用System.Windows.Controls名称空间 首先需要把改名称空间所在的程序集presentationFramework.dll引用到项目里 然后在根元素的起始 ...

  9. WPF XMAL获取元素的父元素,子元素

    /// 获得指定元素的父元素 /// </summary> /// <typeparam name="T">指定页面元素</typeparam> ...

随机推荐

  1. codevs 1432 总数统计

    1432 总数统计 时间限制: 1 s空间限制: 128000 KB题目等级 : 钻石 Diamond   题目描述 Description 给出n个数,统计两两之和小于k的方案数之和. 输入描述 I ...

  2. mysql简单操作(实时更新)

    从表中删除某条记录: delete from table_name where xx=xxxx; 创建数据库(注意不同系统对大小写的敏感性): create database xxx; 查看数据库列表 ...

  3. Beta版本冲刺第一天 12.5

    一.站立式会议照片: 二.项目燃尽图: 三.项目进展: 成 员 前段时间完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 对Alpha版本的分析总结,学习新技术,对Beta版本的讨论规 ...

  4. 数据结构与算法分析–Minimum Spanning Tree(最小生成树)

    给定一个无向图,如果他的某个子图中,任意两个顶点都能互相连通并且是一棵树,那么这棵树就叫做生成树(spanning tree). 如果边上有权值,那么使得边权和最小的生成树叫做最小生成树(MST,Mi ...

  5. ubuntu14.04安装GoldenDict

    1. 软件商店搜索goldendict安装或者$ sudo apt-get install goldendict 2. 配置网页翻译源 编辑-->词典--->网站选项卡,点击添加 以下是有 ...

  6. [VSTS] 从零开始 Team Foundation Server 2010 安装配置详细图文教程

    http://www.cnblogs.com/WilsonWu/archive/2011/11/24/2261674.html 近期公司要配TFS用于新项目的管理,公司也将逐步迁移至VSTS平台,前期 ...

  7. php格式化金额函数分享

    /**  * 格式化金额 *  * @param int $money  * @param int $len  * @param string $sign  * @return string  */ ...

  8. 获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址(服务器端)

    <?php class GetMacAddr{ var $return_array = array(); // 返回带有MAC地址的字串数组 var $mac_addr; function Ge ...

  9. Codeforces 719B Anatoly and Cockroaches(元素的交叉排列问题)

    题目链接:http://codeforces.com/problemset/problem/719/B 题目大意: 有一队蟑螂用字符串表示,有黑色 ‘b’ 和红色 'r' 两种颜色,你想使这队蟑螂颜色 ...

  10. jquermobile 安装

    代码 <script src="../Public/js/jquery-1.11.1.min.js"></script> <script src=&q ...