C#之XMAL与WPF
XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面XAML中的每一个元素都映射为.NET类的一个实例,例如<Button>映射为WPF的Button对象XAML可以在一个元素中嵌套另一个元素,例如Grid元素可以嵌套Button元素
了解XAML
VisualStudio创建一个窗口,默认情况下产生的代码如下:这段代码中包含两个标记元素,一个是Window,一个是GridWindow是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的更多相关文章
- C# XMAL与WPF
通过老师上课的解释和我下课后的网上查询,我了解到了一些关于这三者的关系.XAML是.NET体系开发程序或者网页时前台编程的一种布局方式或者说开发语言,可以比较自由的用标签的方式进行布局,借鉴了HTML ...
- WPF svg 转 xmal
原文:WPF svg 转 xmal 今天wpf里面要用矢量图,美工出的是svg格式的,需要将svg格式的转换为xaml 1.第一个尝试是安装Inkscape,这个软件可以直接将svg另存为xaml,但 ...
- wpf XMAL中隐藏控件
原文:wpf XMAL中隐藏控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a771948524/article/details/9264569 ...
- 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 ...
- WPF xmal绑定数据,当显示数据过长用省略号代替的方法
有时候会遇到这种情况,用了数据绑定显示的数据太长时,如何让过长的数据显示规定的长度,多余的用省略号代替呢,自己写了个简单的小例子和大家分享一下^_^,我也是学习WPF不久,这是我第一次写博客,有问题还 ...
- 3 WPF之从0开始学习XMAL
转载:http://blog.csdn.net/fwj380891124/article/details/8088233 剖析最简单的XMAL代码: <Window x:Class=&quo ...
- WPF:xmal 静动态资源
<StackPanel.Resources> <SolidColorBrush x:Key="myBrush" Color="Teal"/&g ...
- wpf xmal基础
1.名称空间的引用 比如想使用System.Windows.Controls名称空间 首先需要把改名称空间所在的程序集presentationFramework.dll引用到项目里 然后在根元素的起始 ...
- WPF XMAL获取元素的父元素,子元素
/// 获得指定元素的父元素 /// </summary> /// <typeparam name="T">指定页面元素</typeparam> ...
随机推荐
- Servlet3.0中Servlet的使用
目录 1.注解配置 2.异步调用 3.文件上传 相对于之前的版本,Servlet3.0中的Servlet有以下改进: l 支持注解配置. l 支持异步调用. l 直接有对文件上传的支持. 在这篇 ...
- mysql中常用的字符串函数
写在分割线之前,个人以为,数据库应该具备简单的的数据加工能力.如同食品在吃之前,是要经过很多到工序的,有经过初加工.粗加工.精加工.深加工等.那么mysql也应该并必须担任起数据初加工以及粗加工的责任 ...
- JavaScript杂谈(顺便也当知识积累)
JavaScript版本 JavaScript的普及使得其于1997年正式成为国际标准,其官方名称为ECMAScript 1999年定稿第三版ECMAScript标准,简称ES3 2009年重大改进的 ...
- mysql create db utf8 character
create database if not exists wifi default character set utf8;
- app中Webview实现下载表格
<script type="text/javascript"> function getUrl(){ var close = confirm("请点击确定下载 ...
- WinRAR压缩
WinRAR压缩软件: ------------------ 软件官网:http://www.winrar.com.cn/ -------------------------------
- beautifulsoup测试
import re from bs4 import BeautifulSoup html_doc = """ <html><head><ti ...
- JSP传统标签开发
1.标签技术的API类继承关系 1).JspTag接口是所有自定义标签的父接口 该接口中没有任何属性和方法,只有两个直接子接口,Tag接口和SimpleTag接口,把实现Tag接口的自定义标签叫做传统 ...
- Java数据库——处理大数据对象
处理大数据对象 CLOB中可以存储海量文字 BLOB中可以存储海量二进制数据 如果程序中要想处理这样的大对象操作,则必须使用PreparedStatement完成,所有的内容要通过IO流的方式从大文本 ...
- 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片 ...