学习WPF——了解WPF中的XAML
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中附加属性多用于布局
2015-1-5:完成全部内容
《Pro WPF 4.5 in C# 4th Edition》
备注
本篇只简单介绍了XAML的常见知识,还有一些不常见的知识、高级主题暂时没有涉及
学习WPF——了解WPF中的XAML的更多相关文章
- 捕捉WPF应用程序中XAML代码解析异常
原文:捕捉WPF应用程序中XAML代码解析异常 由于WPF应用程序中XAML代码在很多时候是运行时加载处理的.比如DynamicResource,但是在编译或者运行的过程中,编写的XAML代码很可能有 ...
- WPF学习之路(二) XAML(续)
属性 简单属性 前面用到的Width/Height都是简单属性,其赋值一定要放到双引号里 XAML解析器会根据属性的类型执行隐式转换 与C#的区别 SolidBrush.Color = Colors. ...
- WPF学习之路(二) XAML
在WPF中引入了XAML语言,主要用于界面设计,业务逻辑则使用C#实现后台代码,将界面设计与业务逻辑分离 XAML是一种声明式语言,类似XML\HTML 示例: <!--Start Tag--& ...
- WPF中 PropertyPath XAML 语法
原文:WPF中 PropertyPath XAML 语法 PropertyPath 对象支持复杂的内联XAML语法用来设置各种各样的属性,这些属性把PropertyPath类型作为它们的值.这篇文章讨 ...
- 年度巨献-WPF项目开发过程中WPF小知识点汇总(原创+摘抄)
WPF中Style的使用 Styel在英文中解释为”样式“,在Web开发中,css为层叠样式表,自从.net3.0推出WPF以来,WPF也有样式一说,通过设置样式,使其WPF控件外观更加美化同时减少了 ...
- wpf将表中数据显示到datagrid示例(转)
原文:http://www.jb51.net/article/47120.htm 这篇文章主要介绍了wpf将表中数据显示到datagrid示例,需要的朋友可以参考下 a.在.xaml文件中拖入一个da ...
- 在WPF应用程序中使用Font Awesome图标
Font Awesome 在网站开发中,经常用到.今天介绍如何在WPF应用程序中使用Font Awesome . 如果是自定义的图标字体,使用方法相同. 下载图标字体 在官方网站或github上下载资 ...
- WPF实现窗体中的悬浮按钮
WPF实现窗体中的悬浮按钮,按钮可拖动,吸附停靠在窗体边缘. 控件XAML代码: <Button x:Class="SunCreate.Common.Controls.FloatBut ...
- WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制
无论是 WPF 还是 UWP 开发,如果用 Storyboard 和 Animation 做动画,我们多数时候都会设置 From 和 To 属性,用于从起始值动画到目标值.然而动画并不总是可以静态地指 ...
- WPF Prism MVVM 中 弹出新窗体. 放入用户控件
原文:WPF Prism MVVM 中 弹出新窗体. 放入用户控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_37214567/artic ...
随机推荐
- avalon2的后端渲染实践
avalon2为了提高性能,采用全新的架构,四层架构,其中一层为虚拟DOM. 虚拟DOM的一个好处是能大大提高性能,另一个好处是能过错整描述我们的页面结构.因此在非浏览器环境下,虚拟DOM也能正常运行 ...
- 《C和指针(Pointer on c)》 学习笔记
转载:http://dsqiu.iteye.com/blog/1687944 首先本文是对参考中三个连接的博客进行的整理,非常感谢三位博主的努力,每次都感叹网友的力量实在太强大了…… 第一章 快速上手 ...
- 把 TBytes 转换为十六进制字符串
function BytestoHexString(ABytes: TBytes; len: Integer): AnsiString; begin SetLength(Result, len*) ...
- confirm确认对话框
还记得之前的javascript入门里的讲的confirm 消息对话框吗?不记得也没关系,我们先来回顾一下,然后在详细讲它. 复习: confirm 消息对话框通常用于允许用户做选择的动作,如:“你对 ...
- Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK fla
转载于 http://blog.csdn.net/wike163/article/details/6678073 从一个Activity中要通过intent调出另一个Activity的话,需 ...
- 树莓派(raspberry pi)学习4: 更改键盘布局(转)
树莓派(raspberry pi)用了几次后,发现键盘老是按错,一些字符打不出来或打错 这个问题,折腾我半天.还是把心得分享一下吧 上网查,发现是键盘布局不对,树莓派(raspberry pi)是英国 ...
- deep learning
今天跑一个模型,程序都没变,就配置文件变了.但是总是很快就显示loss为nan. 检查配置文件还是不行,把其中loss改为0还是不行.最后搁置了一下,再回头对比一下电脑上的和服务器上的,发现一个配置文 ...
- PHP验证码参考页面
http://blog.sina.com.cn/s/blog_95ee14340100z8q9.html http://www.jb51.net/article/44951.htm
- 小甲鱼python视频第八讲(课后习题)
1.for循环的使用,注意下面代码的区别 for i in range(0,10,2): print("i love you") for i in range(0,10): pri ...
- 【随笔】ARP和RARP
ARP协议是什么? ARP协议是"Address Resolution Protocol"(地址解析协议)的缩写.在局域网中,网络中实际传输的是"帧",帧里面是 ...