WPF学习笔记--xaml介绍
2009-06-26 16:36
316 查看
XAML实现UI代码和应用程序逻辑代码的分离。
在.NET 3.0和Windows
Vista中,XAML与WPF一起建立整个的UI。由于XAML是基于XML的,所以每个XAML代码都肯定是一个完整的XML文件。XAML继承了
XML所有的定义和规则。XAML与其他XML扩展不同之处就是他所表示的意义。每个XAML元素是一个.NET
CLR类。基于XML使得我们非常容易扩展和操作XAML。利用XAML的WPF这种关系,开发人员可以单独的设计漂亮的UI,也许真正的美工会更多的出
现。我们可以把程序逻辑写在单独的文件或者是内联嵌入到XML文件。
在XAML中使用得最多的XML功能应该有三个:命名空间、属性和子元素。
例:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:_3DTools="clr-namespace:_3DTools;assembly=3DTools"
x:Class="CoverFlowDemo.Window1" Title="CoverFlowDemo" Height="441" Width="702" Background="black"
x:Name="Window"
xmlns:System="clr-namespace:System;assembly=System
"
xmlns:selfclass="clr-namespace:DataBind
"
>
<Grid>
<Button Width="600">
<Button.Background>White</Button.Background>
</Button>
<selfclass:AddData/>
</Grid>
</Window>
其中xmlns为命名空间.
在Button结点,width为属性,button.background为子元素,这两种使用方式可选择其一。
xaml的优点:
除了都具有xml的优点外还具有如下优点:
1、 用XAML设计UI更简单
2、 XAML比其他的UI设计技术所需编码更少。
3、 XAML设计的UI方便转移、方便在其他环境提交。比如在Web或Windows Client。
4、 用XAML设计动态UI非常容易
xaml文件中 xmlns:x 的作用也是指定命名空间。这里为什么是
x
而不是其他的,我们可以简单的理解为其只是
MS
的一个命名而已,没有任何特殊的意义,当然,为了避免和它的冲突,我们定义自己的命名空间的时候不能是
x。
而另一个
x:Class
的作用就是支持当前
Window
所对应的类,前面已经说过每个
XAML
元素都是一个
CLR
类型,这里的
x:Class
是
Window
的一个属性,属性的内容指出当前的窗口类是
FirstXAML
名字空间下的
Windows1
。为什么需要类,而不全部用
XAML
实现?
XAML
的主要作用还是编写
UI
部分,我们仍然需要用代码对程序逻辑进行更深层次的控制。
同样地,名字空间也可以自定义,并且这个自定义会给我们带来很大的方便。我们定义如下的一个类:
namespace DataBind
{
public class AddData
{
//
}
}
如果想在
XAML
文件中使用这个
AddData
类对象,我们就可以通过自定义的名字空间引入这个类:
xmlns:local="clr-namespace:
DataBind
"
这里的后缀
local只
是一个标识,你可以设置为任何你喜欢的唯一标识。通过这个引入定义我们就可以在
XAML
文件中用
local
来标识
DataBind
当中的任何类。访问
AddData
类时只需要加上
local
就可以识别了:
<local:
AddData
/>
xmlns:System="clr-namespace:System;assembly=System
"
例子当中引入
.NET
的
System Assembly
,通过它我们就可以直接使用
System
的任何类。利用这种类似的方式,我们可以在
XAML
中使用几乎所有的
DOTNET
框架类。
在
XAML
中
inline
嵌入程序逻辑处理代码的情况。利用
<CDATA[…]]>
关键字引入处理代码。这种情况在实际当中不太合适,我们不应该采用
UI
和逻辑混合的方式。详细的解释可以参数
Windows SDK
文档。
<![CDATA[
void Clicked(object sender, RoutedEventArgs e)
{
button1.Content = "Hello World";
}
]]></x:Code>
在.NET 3.0和Windows
Vista中,XAML与WPF一起建立整个的UI。由于XAML是基于XML的,所以每个XAML代码都肯定是一个完整的XML文件。XAML继承了
XML所有的定义和规则。XAML与其他XML扩展不同之处就是他所表示的意义。每个XAML元素是一个.NET
CLR类。基于XML使得我们非常容易扩展和操作XAML。利用XAML的WPF这种关系,开发人员可以单独的设计漂亮的UI,也许真正的美工会更多的出
现。我们可以把程序逻辑写在单独的文件或者是内联嵌入到XML文件。
在XAML中使用得最多的XML功能应该有三个:命名空间、属性和子元素。
例:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:_3DTools="clr-namespace:_3DTools;assembly=3DTools"
x:Class="CoverFlowDemo.Window1" Title="CoverFlowDemo" Height="441" Width="702" Background="black"
x:Name="Window"
xmlns:System="clr-namespace:System;assembly=System
"
xmlns:selfclass="clr-namespace:DataBind
"
>
<Grid>
<Button Width="600">
<Button.Background>White</Button.Background>
</Button>
<selfclass:AddData/>
</Grid>
</Window>
其中xmlns为命名空间.
在Button结点,width为属性,button.background为子元素,这两种使用方式可选择其一。
xaml的优点:
除了都具有xml的优点外还具有如下优点:
1、 用XAML设计UI更简单
2、 XAML比其他的UI设计技术所需编码更少。
3、 XAML设计的UI方便转移、方便在其他环境提交。比如在Web或Windows Client。
4、 用XAML设计动态UI非常容易
xaml文件中 xmlns:x 的作用也是指定命名空间。这里为什么是
x
而不是其他的,我们可以简单的理解为其只是
MS
的一个命名而已,没有任何特殊的意义,当然,为了避免和它的冲突,我们定义自己的命名空间的时候不能是
x。
而另一个
x:Class
的作用就是支持当前
Window
所对应的类,前面已经说过每个
XAML
元素都是一个
CLR
类型,这里的
x:Class
是
Window
的一个属性,属性的内容指出当前的窗口类是
FirstXAML
名字空间下的
Windows1
。为什么需要类,而不全部用
XAML
实现?
XAML
的主要作用还是编写
UI
部分,我们仍然需要用代码对程序逻辑进行更深层次的控制。
同样地,名字空间也可以自定义,并且这个自定义会给我们带来很大的方便。我们定义如下的一个类:
namespace DataBind
{
public class AddData
{
//
}
}
如果想在
XAML
文件中使用这个
AddData
类对象,我们就可以通过自定义的名字空间引入这个类:
xmlns:local="clr-namespace:
DataBind
"
这里的后缀
local只
是一个标识,你可以设置为任何你喜欢的唯一标识。通过这个引入定义我们就可以在
XAML
文件中用
local
来标识
DataBind
当中的任何类。访问
AddData
类时只需要加上
local
就可以识别了:
<local:
AddData
/>
xmlns:System="clr-namespace:System;assembly=System
"
例子当中引入
.NET
的
System Assembly
,通过它我们就可以直接使用
System
的任何类。利用这种类似的方式,我们可以在
XAML
中使用几乎所有的
DOTNET
框架类。
在
XAML
中
inline
嵌入程序逻辑处理代码的情况。利用
<CDATA[…]]>
关键字引入处理代码。这种情况在实际当中不太合适,我们不应该采用
UI
和逻辑混合的方式。详细的解释可以参数
Windows SDK
文档。
<![CDATA[
void Clicked(object sender, RoutedEventArgs e)
{
button1.Content = "Hello World";
}
]]></x:Code>
相关文章推荐
- WPF学习笔记--xaml属性介绍
- WPF学习笔记一 熟悉XAML
- WPF学习笔记 - 在XAML里绑定
- wpf学习笔记---初识xaml标签语言
- WPF学习笔记-用Expression Design制作矢量图然后导出为XAML
- WPF学习笔记3: Xaml之Property Element
- wpf学习笔记二 深入学习 xaml
- WPF学习笔记1-XAML空间关键字
- WPF学习笔记 - 在XAML里绑定
- WPF 学习笔记 - 4. XAML
- WPF学习笔记 - 在XAML里绑定
- WPF学习笔记1:XAML之NameSpace
- WPF学习笔记5: Xaml之Markup Extensions
- [WPF学习笔记]动态加载XAML
- wpf学习笔记---初识xaml标签语言
- WPF学习笔记-用Expression Design制作矢量图然后导出为XAML
- WPF 学习笔记 - 4. XAML
- wpf学习笔记三 深入学习 xaml
- WPF学习笔记2:Xaml之Attribute
- WPF学习笔记--XAML