动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 软件工程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 软件工程 ]的信息

本月文章推荐
.VS.NET中构建数据库应用程序.
.SOAP+Flash 更友好的Web应用程序.
.未来的计算机病毒什么样?.
.UML建模工具UMLGraph 4.3 发布.
.使用Eclipse和RDT插件进行Ruby开.
.在IBM WebSphere MQ本地队列中存.
.J2EE项目中开发团队的组建.
.实现SOA的两个案例.
..NET正则表达式使用高级技巧之工.
.系统设计前的需求探索(1).
.使用ADO.NET的最佳实践.
.SOA 管理者酝酿合作.
.面向服务的体系结构的成熟度模型.
.软件工程的未来之路与我们的解决.
.再谈多态—向上映射及VMT/DMT.
.确定项目的工作需求.
.32位程序移植到64位平台前的准备.
.XMI与UML合力推动产品开发(1).
.论设计与编程的关系.
.实现基于IDEA算法的加密工具(2).

XAML开发入门之用VS2005开发XAML程序

发表日期:2008-3-23 |



  假如我们使用Visual Studio 2005来开发一个XAML程序,那与上述的手动创建XAML程序过程来说是相对便捷的。你可以直接选择一个WinFX模板来创建特定类型的WPF程序,Visual Studio会自动为该WPF程序创建相应的项目文件和应用程序清单。现在我们可以创建的WPF程序类型有如下的四种:

  1. WinFX Wndows Application
  2. WinFX Web Browser Application
  3. WinFX Service Library
  4. WinFX Customer Control Library

  然而,针对WinFX开发的Visual Studio版本还没有正式推出,所以Visual Studio 2005缺乏对WinFX程序开发这方面的一些完善支持,为此要编辑XAML和相应的代码后置文件(.xaml.cs)时,有时还是需要开发人员手动地进行编辑。

  在这里假设你已经安装好了运行XAML所需的软件环境,现在我们来使用Visual Studio 2005创建一个WPF程序。至于是选择WinFX Wndows Application模板还是WinFX Web Browser Application模板取决于你所要创建的是宿主于浏览器的程序还是窗体程序。现在我们在"新建项目"对话框中的WinFX Web Browser Application模板,输入该WPF程序的项目名称,并选择好程序保存在硬盘上的位置,点击"确定"按钮,Visual Studio就自动为该WPF程序生成默认的XAML和代码后置文件。

    XAML开发入门之用VS2005开发XAML程序(图一)

  提示:无论你是否使用Visual Studio,在创建一个WinFX Wndows Application和一个WinFX Web Browser Application时,各自的.xaml文件代码还是存在一些细微差别的。在一个Browser Application中,默认起始页的根元素为Page。而一个Wndows Application中,默认起始页的根元素为Window。而Window类是无法在Browser Application中使用的,这是因为运行在浏览器中的WPF程序是在部分信任的沙箱内操作(沙箱能够防止客户端计算机受到恶意应用程序的侵害),为此它没有打开一个新Windows窗体的权限。

  在解决方案资源治理器窗口中,可以看到Visual Studio为当前WPF程序所自动生成的XAML和代码后置文件。由于在Visual Studio中会自动生成相应的项目文件,使用我们不必具体了解该Browser Application在生成时其底层的实现细节。但是由于WPF程序和应用程序定义文件和相关的XAML页面文件戚戚相关,为此最好还是具体了解下各个文件的具体内容,下面我们通过双击解决方案资源治理器中的文件图标打开相应的文件,在默认状态下,一个.xaml文件存在三个试图方式,分别为设计试图、XAML试图和源码试图。假如要查看相应的XAML代码的话,你可以点击XAML按钮切换到XAML试图状态下。这是打开应用程序定义文件App.xaml的相应界面:

  XAML开发入门之用VS2005开发XAML程序(图二)

  XAML开发入门之用VS2005开发XAML程序(图三)

  点击XAML试图按钮后,App.xaml页面对应的XAML代码如下

01 <Application x:Class="BrowserDemo.App"
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 >
06 <Application.Resources>
07
08 </Application.Resources>
09 </Application>
  在第1行代码处我们可以看到,在应用程序定义文件中我们使用了Application元素,并且用x:Class 属性指定了一个与之关联的C#不完全类(后一个程序清单的第14行代码所示),而后在程序编译时,会自动将应用程序定义文件和包含关联C#不完全类的代码后置文件这两部分结合在一起,从而创建一个完整的BrowserDemo命名空间下的App类,注重,BrowserDemo.App类是从WPF提供的System.Windows.Application类中派生的。第4行代码使用了StartupUri属性为该WPF程序指定首次运行程序时要加载的XAML页面文件。在一个Browser Application类型的WPF程序中,我们可以添加多个XAML页面,并支持在这些页面间进行跳转和切换。

  提示:

  而App.xaml.cs的代码如下(可以通过App.xaml页面的Source按钮切换到源码试图):


01 using System;
02 using System.Windows;
03 using System.Windows.Navigation;
04 using System.Data;
05 using System.Xml;
06 using System.Configuration;
07
08 namespace BrowserDemo
09 {
10  /// <summary>
11  /// Interaction logic for App.xaml
12  /// </summary>
13
14  public partial class App : Application
15  {
16
17  }
18 }
  Page1.xaml页面对应的XAML代码如下:

01 <Page x:Class="BrowserDemo.Page1"
02 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
03 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
04 Title="Page1"
05 >
06 <Grid>
07 </Grid>
08 </Page>
  我们在第1行代码处用x:Class属性指定的BrowserDemo.App类是从WPF提供的System.Windows.Application类中派生的,并且用属性Title指定了该页面在呈现时的标题。第6-8行代码使用了一个Grid元素,微软推荐开发人员使用该元素来布局XAML页面上的各个界面元素,这是因为Grid元素在定位页面上的各个元素方面有着极大的灵活性,至于该元素的具体用法将在本章的后续章节进行介绍。

01 using System;
02 using System.Collections.Generic;
03 using System.Text;
04 using System.Windows;
05 using System.Windows.Controls;
06 using System.Windows.Data;
07 using System.Windows.Documents;
08 using System.Windows.Input;
09 using System.Windows.Media;
10 using System.Windows.Media.Imaging;
11 using System.Windows.Navigation;
12 using System.Windows.Shapes;
13
14 namespace BrowserDemo
15 {
16  /// <summary>
17  /// Interaction logic for Page1.xaml
18  /// </summary>
19
20  public partial class Page1 : Page
21  {
22
23   public Page1()
24   {
25    InitializeComponent();
26   }
27
28  }
29 } QQread.com 推出各大专业服务器评测 Linux服务器的安全性能 SUN服务器 HP服务器 DELL服务器 IBM服务器 联想服务器 浪潮服务器 曙光服务器 同方服务器 华硕服务器 宝德服务器
  现在我们在这个Browser Application的Page1.xaml页面上添加一个按钮,并对该按钮的单击事件添加一个事件处理方法以显示信息。首先我们在工具箱上拖拽一个Button控件,切换到XAML视图后,你会发现在<Grid>…</Grid>两元素之间添加了一个Button元素,我们可以设置其相应的属性,最终Page1.xaml的代码如下:

01 <Page x:Class="BrowserDemo.Page1"
02 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
03 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
04 Title="Page1"
05 >
06 <Grid>
07 <Button Height="100" Width="300" FontSize="24" Background="Aqua"
08 Name="MyButton" Content="Click Me" Click="ChangeMe" >
09 </Button>
10 </Grid>
11 </Page>
  由于要处理按钮的单击事件,为此我们要编写相应的事件处理方法。其代码如下


01 void ChangeMe(object sender, RoutedEventArgs eventArgs)
02 {
03  count++;
04  MyButton.Content = "You have clicked " + count + " times!";
05 }
  如上述的代码所示,我们每点击一次按钮,都会导致该按钮上显示的内容发生改变(每次count的值都自增1)。

  而事件处理代码我们一般是在XAML页面对应的代码后置文件中进行编写。我们将事件处理代码要添加到Page1.xaml页面的代码后置文件Page1.xaml.cs中,改变后的代码如下:

01 using System;
02 using System.Collections.Generic;
03 using System.Text;
04 using System.Windows;
05 using System.Windows.Controls;
06 using System.Windows.Data;
07 using System.Windows.Documents;
08 using System.Windows.Input;
09 using System.Windows.Media;
10 using System.Windows.Media.Imaging;
11 using System.Windows.Navigation;
12 using System.Windows.Shapes;
13
14 namespace BrowserDemo
15 {
16  /// <summary>
17  /// Interaction logic for Page1.xaml
18  /// </summary>
19
20  public partial class Page1 : Page
21  {
22   int count = 0;
23   public Page1()
24   {
25    InitializeComponent();
26   }
27
28   void ChangeMe(object sender, RoutedEventArgs e)
29   {
30    count++;
31    MyButton.Content = "You have clicked " + count + " times!";
32   }
33  }
34 }
  我们在第22行定义了一个名为count的变量,并初始化其值为0。在第28行代码处是Button按钮的事件处理方法,这里的事件处理方法名ChangeMe就是由Page1.xaml中的Button元素的Click指定的。因为在一个WPF程序中可能包含若干个Button元素,所以你可以在XAML文件用Name属性为该Button元素指定一个惟一的名称,这里为MyButton。以后在对应的代码后置文件中应用该Button元素时,就不用再对这个元素进行声明了。并且在编译时,Button元素的声明和相应的事件处理方法将"合并"到同一个类中,这里为BrowserDemo.Page1。

  提示:在添加了元素和相应的处理方法、逻辑后,我们就可以采用和以前类似的用Visual Studio生成.NET应用程序的方式来生成WPF程序。也就是说我们可以使用Visual Studio菜单上的"生成"-"生成XX"(XX为项目名)命令来编译程序,编译完毕后,就可以对该程序进行测试、调试和部署。

  保存文件的最后一次改动后,再使用"启动调试"按钮生成该Browser Application程序,最后得到的呈现效果如下:

XAML开发入门之用VS2005开发XAML程序(图四)

  下图是点击按钮10次后的显示效果:

XAML开发入门之用VS2005开发XAML程序(图五)

  上述的整个实现过程对于.NET开发人员来说应该是非常熟悉的,因为XAML页面有点类似于Asp.Net中的Web窗体,都是用来构建程序的界面布局。而XAML页面对应的代码后置文件则等类似于ASP.NET中用来处理事件和用户请求信息的服务器端代码。

  我们在前面提及过,使用Visual Studio来创建一个WPF程序时,无需开发人员编写项目文件,而且也不用考虑微软新一代统一生成平台MSBuild的运作方式。上述的这些必需的文件都会由Visual Studio自动给开发人员生成,你仅需考虑WPF程序中的应用程序定义文件和XAML页面文件即可。

XAML开发入门之用VS2005开发XAML程序(图六)

上一篇:XAML开发入门之XAML核心语法 人气:466
下一篇:XAML开发入门之XAML的五大元素 人气:479
浏览全部软件工程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成