WPF指南之三(XAML的名字空间)
来源:互联网 发布:web入门 知乎 编辑:程序博客网 时间:2024/06/05 08:25
在前一篇文章中,指出xmlns的作用是设置XML文件的命名空间。类似的,xmlns:x的作用也是指定命名空间。这里为什么是x而不是其他的,我们可以简单的理解为其只是MS的一个命名而已,没有任何特殊的意义,当然,为了避免和它的冲突,我们定义自己的命名空间的时候不能是x。
而另一个x:Class的作用就是支持当前Window所对应的类,前面已经说过每个XAML元素都是一个CLR类型,这里的x:Class是Window的一个属性,属性的内容指出当前的窗口类是FirstXAML名字空间下的Windows1。为什么需要类,而不全部用XAML实现?XAML的主要作用还是编写UI部分,我们仍然需要用代码对程序逻辑进行更深层次的控制。
好了,这是两个最基本的名字空间。同样地,名字空间也可以自定义,并且这个自定义会给我们带来很大的方便。我们定义如下的一个类:
namespace DataBind4Image
{
public class GroupData
{
//具体的细节忽略
}
}
{
public class GroupData
{
//具体的细节忽略
}
}
如果想在XAML文件中使用这个GroupData类对象,我们就可以通过自定义的名字空间引入这个类:
xmlns:local="clr-namespace:DataBind4Image"
这里的后缀local只是一个标识,你可以设置为任何你喜欢的唯一标识。通过这个引入定义我们就可以在XAML文件中用local来标识DataBind4Image当中的任何类。访问GroupData类时只需要加上local就可以识别了:
利用名字空间,除了可以引入我们定义的当前工程的类,还可以引入任何的Assembly。直接看例子是最简单的:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=System"
>
例子当中引入.NET的System Assembly,通过它我们就可以直接使用System的任何类。利用这种类似的方式,我们可以在XAML中使用几乎所有的DOTNET框架类。
最后说明一下在XAML中inline嵌入程序逻辑处理代码的情况。利用关键字引入处理代码。这种情况在实际当中不太合适,我们不应该采用UI和逻辑混合的方式。详细的解释可以参数Windows SDK文档。
void Clicked(object sender, RoutedEventArgs e)
{
button1.Content = "Hello World";
}
]]>
{
button1.Content = "Hello World";
}
]]>
前面提到过每个XAML元素表示一个.NET CLR类。多数的XAML元素都是从System.Windows.UIElement, System.Windows.FrameworkElement, System.Windows.FrameworkContentElement和System.Windows.ContentElement继承。没有任何的XAML元素与.NET CLR的抽象类对应。但是很多元素都有一个抽象类的派生类对应。
通常有如下四种通用的XAML元素:
Root元素:Windows和Page是最常用的根元素。这些元素位于XAML文件的根元素,并包含其他元素。
Panel元素:帮助布置UI位置。常用的是StackPanel, DockPanel, Grid和Canvas。
Control元素:定义XAML文件的控件类型。允许添加控件并自定义。
Document元素:帮助实现文档提交。主要分为Inline和Block元素组,帮助设计的外观类似文档。一些有名的Inline元素有Bold,LineBreak, Italic。Block元素有Paragraph, List, Block, Figure和Table。
Document元素:帮助实现文档提交。主要分为Inline和Block元素组,帮助设计的外观类似文档。一些有名的Inline元素有Bold,LineBreak, Italic。Block元素有Paragraph, List, Block, Figure和Table。
XAML元素的属性与.NET类对象的属性类似,XAML的面向对象特征使得它的行为与之前的HTML类似。每个属性(实际上是类属性)继承了父元素的属性或者重载(如果重新设置了属性)。
- WPF指南之三(XAML的名字空间)
- WPF指南之三(XAML的名字空间)
- WPF指南之XAML的名字空间
- WPF指南之XAML的名字空间——出自《IT168》
- WPF指南之二(XAML概述)
- WPF指南之二(XAML概述)
- WPF XAML的命名空间
- WPF指南之XAML概述——出自《IT168》
- WPF Summary:XAML命名空间
- WPF介绍之XAML
- WPF 之 XAML语法
- WPF之XAML积累
- wpf中:xaml中的命名空间的引入
- wpf中:xaml中的命名空间的引入方法
- XAML之命名空间
- WPF (xaml) 属性
- #85 – Two Main Namespaces Used in Every WPF XAML File(2个在每个XAML中都会使用的命名空间)
- WPF中XAML命名空间映射
- Windows Vista 桌面窗口管理器(2)
- WPF的逻辑树和视觉树
- linux系统调用(转)
- WPF与Win32图形系统
- Windows Vista 桌面窗口管理器(1)
- WPF指南之三(XAML的名字空间)
- WPF指南之二(XAML概述)
- YUV格式
- WPF指南之一(WPF的结构)
- 开始总是很难 不知该写些什么 正在搞日历
- DirectShow SDK笔记【关于DirectShow(4)】
- DirectShow SDK笔记【关于DirectShow(3)】
- [转]C# 2.0 泛型编程
- DirectShow SDK笔记【关于DirectShow(2)】