【原文地址】Silverlight Tutorial Part 8: Creating a Digg Desktop Application using WPF
【原文发表日期】 Friday, February 22, 2008 5:46 AM
这是8个系列教程的第八部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。
使用WPF创建一个Digg桌面应用
这
最后一个教程的目的与前面7个有点不同。我们实际上不将在本教程里在Silverlight中运行代码,而是将使用WPF和.NET
3.5。我们将拿我们编写的,在浏览器中运行于Silverlight中的现有的Digg应用代码,重用它来以Windows桌面应用的方式运行。
随Silverlight发布的是一套与.NET 框架完整版本相兼容的API子集。这么做的目的就是允许开发人员学习一个共同的编程模型和工具集,能够在RIA web应用,丰富的Windows桌面应用和Office解决方案之间重用学到的技能,代码和内容。
下面是我采取的步骤,来重用我们现有的Digg Silverlight应用代码(运行于浏览器中),来建造一个Windows桌面应用的版本(运行于浏览器外)。
第一步:创建一个新的WPF桌面应用
我们先开始使用VS 2008创建一个新的WPF桌面应用。我们将之命名为“DiggDesktopSample”:
这会在VS中创建一个项目,内含2个文件,一个App.xaml,一个 Window.xaml:
注意,这个项目的结构与我们在本系列教程的第一篇里创建的Silverlight应用的结构非常类似(拥有一个App.xaml 文件,一个 Page.xaml 文件)。
第二步:把现有的Digg应用的代码拷贝进WPF应用中
我们将把现有的DiggApplication Silverlight代码拷贝/粘贴进我们的新DiggDesktopSample Windows项目中:
目前在Beta1版本中,这个拷贝/粘贴是个手工步骤,我们最终将有一个自动化的方式来在不同项目类型间移动代码。
第三步:修正几个问题
我需要做2个改动,才能使我们现有的Digg例程代码被成功编译:
1) Silverlight Beta1 XAML定义的命名空间 xmlns:URL与完整的WPF桌面版本不同。我需要改动我拷贝进新项目的XAML文件指向完整WPF的定义。这是在发布前我们还正在研究的东西。
2) 我需要把<<WaterMarkTextBox>控件改成<TextBox>,把
<HyperlinkButton> 控件改成<TextBlock>。这2个控件是Silverlight Beta1
版本中新有的,不存在于完整的WPF版本中(但我们会在将来添加它们)。但我不用改动跟这些控件相关的任何代码,也不用改动网络调用,LINQ to XML, 或数据绑定代码。
做完这些小改动后,项目就可以干净地编译了。
第四步:把Digg应用宿主与桌面窗口中
然后我打开桌面项目中的Windows1.xaml 文件(它是在应用启动时装载的默认窗口)。
我把窗体的标题改成“Digg Desktop Version”,扩大了窗口默认的宽度和高度。
然
后我把来自前面的Digg Silverlight 项目中的Page.xaml
用户控件加到窗口中作为根控件。这在窗口装载时,会载入该控件并使之可见。我不用改动Page类的代码,或者对其中的东西改名。因为是从
UserControl继承而来,它是完全可以宿主于任何WPF窗口或控件中的。
我
改动的最后一样东西是因为Digg REST API
服务器会试着检测是否是非浏览器/服务器在访问它,有时会在这些情形下给予一个拒绝访问的回复(大概是防止自动脚本访问他们的服务)而导致的一个问题。我
通过让网络访问经过一个代理URL解决了这个问题(没有代码变动,只是URL改动)。
第五步: 运行应用
然后,我能够运行我们新的DIgg桌面应用。所有的功能都跟Silverlight的版本一样工作,应用的行为也完全一样:
在从列表中选择一个故事后,细节用户控件显示为:
浏
览器版本和桌面版本间有几个细微的样式区别。这主要是因为WPF在默认情形下继承了基于当前用户选择的操作系统主题的默认样式(字体,颜色,卷动条等
等),而Silverlight
则有一个我们在所有操作系统上都使用的默认主题。如果我们要使得桌面版本和浏览器版本绝对一致,我们可以在我们的样式和控件模板中更明确地指定,否则的
话,桌面版本会基于用户的OS主题做稍微的变动。
结语
我们会在将来推出在Silverlight和WPF项目之间共享代码的更详细的注意事项和推荐
的最佳实践指南。我认为你会发现你在建造Silverlight应用时学到的技能和知识可以很好地转移到完整的WPF的项目中去。我们也致力于一个非常高
的兼容水平,能在解决方案间促进好的代码重用,促进控件,内容和代码的轻松共享和利用。
希望本文对你有所帮助,
Scott
- 大小: 13.2 KB
- 大小: 62.4 KB
- 大小: 13.2 KB
- 大小: 14 KB
- 大小: 72.7 KB
- 大小: 68.7 KB
分享到:
相关推荐
Silverlight教程 · 第一部分:使用Silverlight 2 和 VS 2008创建“Hello World”程序 · 第二部分:使用布局管理 (木野狐译) · 第三部分:使用 Networking取回数据并...· 第八部分:使用WPF创建一个Digg桌面应用
本教程旨在指导读者使用 VS2010 Beta 1 创建一个 WPF 应用程序。首先,读者需要安装完整的 VS2010 产品,包括 TFS。然后,创建一个新的 WPF 应用程序项目,命名为 PicViewer。这个项目将包括一个表格窗体和默认生成...
- **WPF (Windows Presentation Foundation)**: 是 Windows 桌面应用程序的一个框架,也是 Silverlight 的基础技术之一。它提供了一种统一的方式来构建用户界面,无论是在 Web 还是在桌面环境中。 - **Silverlight...
Silverlight是WPF的一个轻量级版本,最初设计用于Web应用,后来也扩展到了桌面应用。尽管Silverlight已被微软逐步淘汰,但它在2008年至2012年间的广泛应用,尤其是在多媒体和互动内容方面,使得许多开发者对其动画和...
### WPF学习笔记——主流桌面应用开发技术 #### 一、WPF简介 **Windows Presentation Foundation (WPF)** 是微软推出的下一代图形用户界面系统,它主要用于构建具备卓越视觉体验的Windows客户端应用程序。WPF不仅...
WPF是.NET Framework的一部分,提供了一个用于创建Windows桌面应用的全面、统一的模型。它支持数据绑定、控件设计、图形渲染和多媒体集成,使得开发者能够创建出美观且功能强大的应用程序。 接下来,我们探讨如何将...
在IT行业中,Windows Presentation Foundation(WPF)和Silverlight是微软推出的重要开发框架,用于构建丰富的桌面和Web应用程序。这两个技术都基于.NET Framework,提供了强大的图形渲染能力、数据绑定机制和用户...
C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十)第一部分拓展小结篇 C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十一)主位式地图移动模式 C#开发WPF/Silverlight动画及游戏...
- **Silverlight项目结构**:一个典型的Silverlight应用程序包含客户端和服务器两部分,客户端代码运行在浏览器中的Silverlight插件中,服务器端代码则处理数据和通信。 - **媒体播放与交互**:Silverlight支持媒体...
在学习过程中,这个视频教程将引导你逐步构建一个简单的WPF应用,加深对WPF编程的理解,从而提升你的C#和WPF技能。记得实践是检验真理的唯一标准,动手尝试,结合理论学习,你会在WPF的世界中游刃有余。
### WPF与Silverlight的MVVM模式教程:深入解析与实战指南 #### 一、MVVM模式概览 MVVM(Model-View-ViewModel)模式是一种软件架构模式,旨在简化用户界面的开发过程,尤其在WPF(Windows Presentation ...
XAML(Extensible Application Markup Language)是一种用于创建Silverlight和WPF应用程序的标记语言。它为UI元素提供了一种清晰、简洁的定义方式,并且可以方便地集成数据绑定、样式设置等高级功能。本文将详细介绍...
### 使用VS2008创建WPF应用 ...总之,使用VS2008创建WPF应用是一个既简单又强大的过程,可以帮助开发者快速构建出具有现代感的应用程序。随着技术的不断进步,WPF也在不断发展和完善,为开发者提供了更多的可能性。
总的来说,《WPF编程宝典:使用C# 2012和.NET 4.5 第4版》是一本适合初学者和有一定经验的开发者阅读的技术书籍,它可以帮助读者全面掌握WPF的精髓,提升开发专业桌面应用的能力。通过深入学习并实践书中的知识点,...
在IT领域,Windows Presentation Foundation(WPF)和Silverlight是微软推出的重要技术,主要用于构建丰富的、交互式的桌面和Web应用程序。这两个技术虽然有着相似之处,但各有特点,并且在实现某些特定功能时,如...
首先,要实现远程桌面连接,我们需要使用Microsoft Terminal Services Client (mstsc)组件,这是一个内置的Windows组件,用于创建远程桌面会话。在WPF中,我们可以通过进程交互或者COM组件来调用mstsc.exe,传递目标...
第二部分,Silverlight,曾被视为WPF的一个轻量级版本,主要设计用于开发Web应用,尤其在流媒体和富互联网应用(RIA)领域。Silverlight提供了跨浏览器的插件,允许开发者创建具有丰富媒体体验的网页应用。然而,...