知识大全 用VS2005开发XAML程序
Posted 知
篇首语:学之广在于不倦,不倦在于固志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用VS2005开发XAML程序相关的知识,希望对你有一定的参考价值。
用VS2005开发XAML程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
如果我们使用Visual Studio 来开发一个XAML程序 那与上述的手动创建XAML程序过程来说是相对便捷的 你可以直接选择一个WinFX模板来创建特定类型的WPF程序 Visual Studio会自动为该WPF程序创建相应的项目文件和应用程序清单 现在我们可以创建的WPF程序类型有如下的四种 WinFX Wndows Application WinFX Web Browser Application WinFX Service Library WinFX Customer Control Library 然而 针对WinFX开发的Visual Studio版本还没有正式推出 所以Visual Studio 缺乏对WinFX程序开发这方面的一些完善支持 为此要编辑XAML和相应的代码后置文件( xaml cs)时 有时还是需要开发人员手动地进行编辑 在这里假设你已经安装好了运行XAML所需的软件环境 现在我们来使用Visual Studio 创建一个WPF程序 至于是选择WinFX Wndows Application模板还是WinFX Web Browser Application模板取决于你所要创建的是宿主于浏览器的程序还是窗体程序 现在我们在 新建项目 对话框中的WinFX Web Browser Application模板 输入该WPF程序的项目名称 并选择好程序保存在硬盘上的位置 点击 确定 按钮 Visual Studio就自动为该WPF程序生成默认的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试图按钮后 App xaml页面对应的XAML代码如下 <Application x:Class= BrowserDemo App xmlns= xmlns:x= StartupUri= Page xaml > <Application Resources> </Application Resources> </Application>在第 行代码处我们可以看到 在应用程序定义文件中我们使用了Application元素 并且用x:Class 属性指定了一个与之关联的C#不完全类(后一个程序清单的第 行代码所示) 而后在程序编译时 会自动将应用程序定义文件和包含关联C#不完全类的代码后置文件这两部分结合在一起 从而创建一个完整的BrowserDemo命名空间下的App类 注意 BrowserDemo App类是从WPF提供的System Windows Application类中派生的 第 行代码使用了StartupUri属性为该WPF程序指定首次运行程序时要加载的XAML页面文件 在一个Browser Application类型的WPF程序中 我们可以添加多个XAML页面 并支持在这些页面间进行跳转和切换 提示 而App xaml cs的代码如下(可以通过App xaml页面的Source按钮切换到源码试图)
using System; using System Windows; using System Windows Navigation; using System Data; using System Xml; using System Configuration; namespace BrowserDemo /// <summary> /// Interaction logic for App xaml /// </summary> public partial class App : Application Page xaml页面对应的XAML代码如下 <Page x:Class= BrowserDemo Page xmlns= xmlns:x= Title= Page > <Grid> </Grid> </Page> 我们在第 行代码处用x:Class属性指定的BrowserDemo App类是从WPF提供的System Windows Application类中派生的 并且用属性Title指定了该页面在呈现时的标题 第 行代码使用了一个Grid元素 微软推荐开发人员使用该元素来布局XAML页面上的各个界面元素 这是因为Grid元素在定位页面上的各个元素方面有着极大的灵活性 至于该元素的具体用法将在本章的后续章节进行介绍 using System; using System Collections Generic; using System Text; using System Windows; using System Windows Controls; using System Windows Data; using System Windows Documents; using System Windows Input; using System Windows Media; using System Windows Media Imaging; using System Windows Navigation; using System Windows Shapes; namespace BrowserDemo /// <summary> /// Interaction logic for Page xaml /// </summary> public partial class Page : Page public Page () InitializeComponent(); 现在我们在这个Browser Application的Page xaml页面上添加一个按钮 并对该按钮的单击事件添加一个事件处理方法以显示信息 首先我们在工具箱上拖拽一个Button控件 切换到XAML视图后 你会发现在<Grid>…</Grid>两元素之间添加了一个Button元素 我们可以设置其相应的属性 最终Page xaml的代码如下 <Page x:Class= BrowserDemo Page xmlns= xmlns:x= Title= Page > <Grid> <Button Height= Width= FontSize= Background= Aqua Name= MyButton Content= Click Me Click= ChangeMe > </Button> </Grid> </Page>由于要处理按钮的单击事件 为此我们要编写相应的事件处理方法 其代码如下
void ChangeMe(object sender RoutedEventArgs eventArgs) count++; MyButton Content = You have clicked + count + times! ; 如上述的代码所示 我们每点击一次按钮 都会导致该按钮上显示的内容发生改变(每次count的值都自增 ) 而事件处理代码我们一般是在XAML页面对应的代码后置文件中进行编写 我们将事件处理代码要添加到Page xaml页面的代码后置文件Page xaml cs中 改变后的代码如下 using System; using System Collections Generic; using System Text; using System Windows; using System Windows Controls; using System Windows Data; using System Windows Documents; using System Windows Input; using System Windows Media; using System Windows Media Imaging; using System Windows Navigation; using System Windows Shapes; namespace BrowserDemo /// <summary> /// Interaction logic for Page xaml /// </summary> public partial class Page : Page int count = ; public Page () InitializeComponent(); void ChangeMe(object sender RoutedEventArgs e) count++; MyButton Content = You have clicked + count + times! ; 我们在第 行定义了一个名为count的变量 并初始化其值为 在第 行代码处是Button按钮的事件处理方法 这里的事件处理方法名ChangeMe就是由Page xaml中的Button元素的Click指定的 因为在一个WPF程序中可能包含若干个Button元素 所以你可以在XAML文件用Name属性为该Button元素指定一个惟一的名称 这里为MyButton 以后在对应的代码后置文件中应用该Button元素时 就不用再对这个元素进行声明了 并且在编译时 Button元素的声明和相应的事件处理方法将 合并 到同一个类中 这里为BrowserDemo Page 提示 在添加了元素和相应的处理方法 逻辑后 我们就可以采用和以前类似的用Visual Studio生成 NET应用程序的方式来生成WPF程序 也就是说我们可以使用Visual Studio菜单上的 生成 - 生成XX (XX为项目名)命令来编译程序 编译完毕后 就可以对该程序进行测试 调试和部署 保存文件的最后一次改动后 再使用 启动调试 按钮生成该Browser Application程序 最后得到的呈现效果如下 下图是点击按钮 次后的显示效果 上述的整个实现过程对于 NET开发人员来说应该是非常熟悉的 因为XAML页面有点类似于ASP NET中的Web窗体 都是用来构建程序的界面布局 而XAML页面对应的代码后置文件则等类似于ASP NET中用来处理事件和用户请求信息的服务器端代码 我们在前面提及过 使用Visual Studio来创建一个WPF程序时 无需开发人员编写项目文件 而且也不用考虑微软新一代统一生成平台MSBuild的运作方式 上述的这些必需的文件都会由Visual Studio自动给开发人员生成 你仅需考虑WPF程序中的应用程序定义文件和XAML页面文件即可 cha138/Article/program/net/201311/12592相关参考
运行未安装VS2005的机器上C++程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishix
知识大全 VS2005+Crystal Report开发Web应用
VS2005+CrystalReport开发Web应用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
VS2005中C#用代码打开软键盘 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
本篇文章的主要开发环境是VisualStudioVisualStudio系列产品一直以来都提供了强大的控件功能然而我们利用这些控件可以编写出功能强大的应用程序本文主要利用微软的最新net开发工具为
用VS.NET中的测试工具测试ASP.NET程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
VB2005中开发新一代控制台应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!.NET编程免
知识大全 用VS2010在32位电脑上开发一个上位机软体复制到其他电脑上时打开出现问题,如图所示,请问如何解决
用VS2010在32位电脑上开发一个上位机软体复制到其他电脑上时打开出现问题,如图所示,请问如何解决? 以下文字资料是由(本站网www.cha138.com)小编为大家
VS2005系列控件演示之表格 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
WPF基础教程之XAML 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本主题介绍可扩展应用程序
知识大全 “不完美”的VS 2005 Team System
“不完美”的VS2005TeamSystem 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Vi