分享
 
 
 

XAML开发入门之开发环境介绍

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

俗话说,工欲善其事必先利其器。在开始利用XAML开发WPF程序之前,我们最希望的应该是一个强大的WPF开发工具。在本章中,将介绍创建和运行一个XAML程序所必须的软件环境,而后对一个XAML工程的基本结构进行具体的说明,最后就是如何编译和运行一个WPF程序。

注重,本章需要的知识点虽然不是很复杂,但是仍然需要您具备一些asp.net或Html方面的基础知识,这样在对XAML的学习和理解方面才不至于太困难。

运行XAML所需的软件环境

虽然XAML是专门为Vista操作系统设计的,但是我们也可以在Windows xp和Windows Server 2003上使用它。这样使得就算Vista操作系统还没有正式发布,开发人员也可以在Windows XP和Windows Server 2003上对XAML和Microsoft Windows SDK进行预先的学习。

下面是各个可以使用XAML的操作系统版本:

1. Windows XP SP2

2. Windows Server 2003 SP1

3. Vista

在Windows XP SP2和Windows Server 2003 SP1的操作系统上,我们首先要安装.NET Framework 3.0,它在.NET Framework 2.0的基础上还添加了对WPF、WCF、WF和CardSpace等诸多功能的支持。但是无论是使用的是何种操作系统,您都必须安装Microsoft Windows SDK,在该软件开发包中,它包含使用XAML设计用户界面时所需的类库、工具以及一系列的开发文档和代码示例。

假如你打算使用WinFX Extensions to Visual Studio 2005来开发XAML和WPF程序,那么你需要在安装Microsoft Windows SDK前安装Visual Studio 2005。为此它的正确安装顺序为:

1. .NET Framework 3.0

2. Visual Studio 2005

3. Microsoft Windows SDK

4. WinFX Extensions to Visual Studio 2005

最后在Visual Studio 2005中通过"文件"-"新建项目"命令,在弹出的"新建项目"对话框中有一个项目类型列表,选择Window(WinFX),这样我们就可以使用这些模板来开发相应类型的WPF程序了。如下图所示:

QQRead.com 推出数据恢复指南教程 数据恢复指南教程

数据恢复故障解析

常用数据恢复方案

硬盘数据恢复教程

数据保护方法

数据恢复软件

专业数据恢复服务指南

定义一个XAML程序

在这里我们就先不使用WinFX Extensions to Visual Studio 2005来构建一个包含XAML代码的WPF程序了,因为它包含了一些自动生成的XAML代码,为了循序渐进地学习XAML的基础语法和规则,在本小节中就用记事本来开发一个简单的包含XAML的WPF程序。

一般来说,我们通常是将一个WPF的代码分别存放在两个不同类型的文件中。例如.xaml页面文件用来保持为该WPF程序构建的用户界面代码,而代码后置文件.xaml.cs则用来保存应用程序逻辑和事件处理代码。虽然XAML没有提供一个实现事件处理的机制,但是它可以直接通过执行引擎调用用C#或者VB.NET编写的事件处理方法。假如您是一个开发人员,或许你专注的只是应用程序逻辑和事件处理程序的开发。但是在该WPF程序中界面代码和程序逻辑是分离的,所以你必须和其它的设计人员进行良好的沟通,使得你可以确切地知道事件处理方法的名称和程序所引用的元素名称(事件处理方法的名称和元素名称都是在XAML文件中指定的)。

提示:你可以完全使用C#或VB.NET来定义一个XAML程序,在前面我们讲过,所有的XAML元素都是代表一个WPF类,因此你可以通过代码的方式去实现XAML的界面设计。但是XAML可以将应用程序的呈现层完全和程序逻辑分离开来,为此就使得设计人员和开发人员可以更加专注于自己的领域,而在需要修改界面元素或程序逻辑时互不影响。

XAML页面文件通常包含两种类型的元素,一种就是用来构建用户界面的元素,另外一种则是应用程序元素。而application就是一个常用的应用程序元素。我们在使用Visual Studio 2005开发一个ASP.NET站点时通常会使用图1的方式,将某个页面设置为起始页。而在一个WPF程序中,我们可以使用Application元素指定在该WPF程序启动时,首先执行那个XAML页面文件。为此,在我们手动创建一个WPF程序时,首先要编写的就是应用程序定义文件。下面是一个名为MyApp的应用程序定义文件,其代码如下:

MyApp.xaml:

01 <Application

02 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/PResentation"

03 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

04 StartupUri="Page1.xaml">

05 </Application>

在上述的应用程序定义文件中,我们设置了两种类型的属性,分别为命名空间和StartupUri,StartupUri属性就是用来指定应用程序开始时所要加载的起始XAML文件。

图1 ASP.NET中设置起始页的方法

在XAML中,每个元素都是代表一个相应的WPF类,并且元素的各个属性也是对应类的属性。惟一的例外就是xmlns和xmlns:x两个属性,它们指定了该XAML页面文件所使用的默认命名空间,而不是某个类的属性。通常我们在应用程序定义文件中设置好这两个命名空间作为WPF程序引用的默认命名空间,假如不做这样设置的话,那么你必须为应用程序定义文件中的所有XAML每个元素都指定相同的两个xmlns和xmlns:x属性,这和我们在C#中使用using要害字来引用命名空间是类似的。为了减少重复且冗长的输入,我们最好是在应用程序定义文件事先设置好这些默认的命名空间。但是有一种情况除外,那就是使用的是自己命名空间中所定义的元素,在这种情况下,可以将自定义元素的xmlns和xmlns:x属性指定为自身的命名空间。在本文的所有代码示例中,都将在根元素中引用上述的两个默认命名空间,当然你也可以对根元素中的所有元素都指定命名空间,但是这种方式是不推荐的,因为这样不但繁杂,而且使得XAML页面代码冗长。

在任何一个XAML页面文件中首先声明的元素就是前面我们所提及的根元素,每个根元素最好都引用默认的命名空间,在目前版本的WPF程序中,所以的根元素引用的都是下面的两个命名空间:

http://schemas.microsoft.com/winfx/2006/xaml/presentation

http://schemas.microsoft.com/winfx/2006/xaml

提示:为什么说目前的WPF程序引用的是上述的两个命名空间呢?这是因为到Vista正式发布时,这两个命名空间的名称可以会发生变化,在以前的CTP版本中,WPF程序引用的命名空间名称为http://schemas.microsoft.com/winfx/avalon/2005。

在根元素中可以包含其它的XAML元素。在应用程序定义文件中的最常用的就是Application元素,而且根据你所创建的是Windows应用程序还是Browser应用程序,分别使用特定的Windows和Page作为XAML文件的根元素。

在代码2-1中,我们在根元素Application指定了该程序执行时首先加载的XAML页面文件,在上述示例中,StartupUri的属性值为"Page1.xaml",下面我们就来创建Page1.xaml,该文件包含了用户界面的实际定义,就像其它的XAML页面文件一样,我们需要为该文件使用一个根元素。其完整的XAML页面代码如下:

Page1.xaml

01 <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

02 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

03 <StackPanel>

04 <TextBlock>Hello World</TextBlock>

05 <Button Width="100">Click Me</Button>

06 </StackPanel>

07 </Page>

在上述程序代码中,我们在第1行代码处设置了XAML页面文件的根元素为Page,这说明了该WPF程序将使用浏览器进行呈现。第3行代码使用了StackPanel元素,它是用来包含其它的XAML元素的一个容器,功能和它类似的还有DockPanel元素,我们将在后续的学习过程中具体介绍这两个元素,现在你使要知道的就是它们是一个用来包含其它XAML元素的容器元素即可。第4行代码中使用的是TextBlock,这个元素和ASP.NET的Label空间非常类似,用来显示一段文本信息。将这段代码粘贴到XAMLPad中,其显示的效果如下:

这是一个及其简单的XAML页面文件,除了一些必要的属性外,我们并没有进行其它的一些额外设置,例如对该页面应用样式、布局等,对于这些信息的使用方法将在后续直接进行介绍。在这一节中我们只需关注如何创建一个最简单的应用程序定义文件和XAML页面文件即可。现在我们已经创建了MyApp,xaml和Page1.xaml这两个XAML文件,那么通过什么样的方法才能编译这些文件,并执行最终的可执行文件呢?具体的实现过程将在下一节中进行介绍。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有