本小时您能学到:

l  应用类型(Windows,XBAP,独立的XAML)

l  标准应用VS浏览器类型应用

l  用户控件

本小时将介绍您创建WPF应用程序是所面对的选择。WPF为我们提供了创建不同应用的途径,而且一旦开发开始就很难更改。我们将讨论定制您的应用中所需要的组建。

WPF应用的部署形式

WPF应用共有三种形式,下表将着重描述这三种部署形式。

可执行应用

这种格式的应用我们经常使用。您的WPF应用被编译到一个标准的可执行文件中。

XAML浏览器应用

有些时候这种应用被成为XBAP(或者X-Bap)。这是一种特殊的宿主与浏览器(IE6+以及Firefox 2)的WPF应用。由于宿主在浏览器中,这种类型的应用会有许多严格的安全限制,但只这种类型的应用很容易部署以.xbap为扩展名。

XAML文件

这是一个XAML编写的文本文件。.xaml文件使用浏览器来解析。这种应用的限制就是在应用中除了XAML以外不能包含任何代码。使用.xaml为扩展名

XAML文件创建一个Font Viewer应用

在你的应用中不包含代码听起来像是很严格的限制,然而xaml是相当的强大。第一部分的Font Viewer应用程序并未使用任何代码,我们可以将改用用作为一个XAML文件。

虽然Visual Studio并未提供创建单独XAML文件的方法,但它可以帮助我们编辑一个XAML文件。接下来我们将FontViewer转换为一个简单的XAML文件。

1.         在您的桌面创建一个文本文件,并将其命名为FontViewer.xaml。

2.         当您双击FontViewer.xaml,该文件将被默认浏览器加载。它会出现错误提示信息,因为我们并未添加任何代码。

3.         运行Visual Studio并使用【文件】->【打开文件】打开FontViewer.xaml

4.         我们可以使用这些markup在传统的FontViewer应用中。打开Font Viewer 项目下方的MainWindow.xaml文件。

5.         Copy其中的内容并将其粘贴到FontViewer.xaml文件中。

6.         在FontViewer.xaml文件中定位到首尾的Window标签,并将其替换为Page标签。此时该应用便可执行了。

7.         运行这个应用这一步并不是必须的,但却是对可用性的一个很好的练习。修改Page标签中的Title属性为WindowTitle。但应用运行时WindowTitle属性的内容将显示在浏览器的标题栏中。

8.         双击并运行FontViewer.xaml应用。完整的代码如下:

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

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

WindowTitle="Teach Yourself WPF: Font Viewer"

Height="480"

Width="640">

<DockPanel Margin="8">

<Border DockPanel.Dock="Top"

CornerRadius="6"

BorderThickness="1"

BorderBrush="Gray"

Background="LightGray"

Padding="8"

Margin="0 0 0 8">

<TextBlock FontSize="14"

TextWrapping="Wrap">

Select a font to view from the list below.

You can change the text by typing in the region at the bottom.

</TextBlock>

</Border>

<ListBox x:Name="FontList"

DockPanel.Dock="Left"

ItemsSource="{x:Static Fonts.SystemFontFamilies}"

Width="160" />

<TextBox x:Name="SampleText"

DockPanel.Dock="Bottom"

MinLines="4"

Margin="8 0"

TextWrapping="Wrap">

<TextBox.ToolTip>

<TextBlock>

<Italic Foreground="Red">Instructions: </Italic>

➥ Type here to change the preview text.

</TextBlock>

</TextBox.ToolTip>

The quick brown fox jumps over the lazy dog.

</TextBox>

<StackPanel Margin="8 0 8 8">

<TextBlock Text="{Binding ElementName=SampleText,

Path=Text}"

FontFamily="{Binding ElementName=FontList,

Path=SelectedItem}"

FontSize="10"

TextWrapping="Wrap"

Margin="0 0 0 4" />

<TextBlock Text="{Binding ElementName=SampleText,

Path=Text}"

FontFamily="{Binding ElementName=FontList,

Path=SelectedItem}"

FontSize="16"

TextWrapping="Wrap"

Margin="0 0 0 4" />

<TextBlock Text="{Binding ElementName=SampleText,

Path=Text}"

FontFamily="{Binding ElementName=FontList,

Path=SelectedItem}"

FontSize="24"

TextWrapping="Wrap"

Margin="0 0 0 4" />

<TextBlock Text="{Binding ElementName=SampleText,

Path=Text}"

FontFamily="{Binding ElementName=FontList,

Path=SelectedItem}"

FontSize="32"

TextWrapping="Wrap" />

</StackPanel>

</DockPanel>

</Page>

将Font Viewer转换成XBAP应用

将Font Viewer部署为一个XBAP应用是很简单的。Visual Studio提供了一个很有用的机制来发布您的XBAP应用。

接下来我们将通过修改Font Viewer创建一个XBAP项目。

1.         在Visual Studio中,选择【文件】->【新建项目】,选择WFP浏览器应用。并将其命名为FontViewerXBAP.

2.         Visual Studio创建新建项目之后,在【解决方案资源管理器】中。您将看到两点不同。首先,除了Window1.xaml之外还有一个Page1.xaml文件。其次,有一个以.pfx为扩展名的签名文件。

3.         在编辑其中打开Page1.xaml文件,并使用以上代码替换其中的内容。注意:我们使用与仅仅拥有XAML代码版本的FontViewer一样的代码。

4.         在使用这个XBAP应用之前需要做一个小小的修改,添加一下代码到Page标签中:

x:Class=”FontViewerXBAP.Page1”

未完待续..

转载于:https://www.cnblogs.com/netwenchao/archive/2009/10/24/1588977.html

[译]Hour 7 Teach.Yourself.WPF.in.24.Hours相关推荐

  1. SQL入门经典第5版(Sams Teach Yourself SQL in 24 Hours, 5th)随书习题的建表和插入

    Create Table & Insert Statements for<Sams Teach Yourself SQL in 24 Hours, Fifth Edition> e ...

  2. Teach Yourself Drupal in 24 Minutes –Minute7 使用CCK和Image

    转载于:https://www.cnblogs.com/janyou/archive/2010/05/29/1747104.html

  3. Helloj2ee WPF书评系列——缘起

    事情的起因很简单,一来我读过很多WPF的书.此外我还是一个老师.因此 确实有必要让更多的人少走一些弯路.曾经有人要我推荐关于WPF的书籍. 那么我会推荐其中的几本,至于那本适合,就还要看个人了. 先讲 ...

  4. 分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月14日-5月20日)

    分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月14日-5月20日) 本周Silverlight学习资源更新 MVVM设计模式相关--Silverlight商 ...

  5. .net新技术书箱推荐

    有些技术比较新,没有中文版的,但能下载到电子书. .net基础 .NET 设计规范 地址:http://space.cnblogs.com/group/topic/1921/ 本书为框架设计师和广大开 ...

  6. 分享Silverlight/WPF/Windows Phone一周学习导读(11月14日-11月20日)

    分享Silverlight/WPF/Windows Phone一周学习导读(11月14日-11月20日) 本周Silverlight学习资源更新 Silverlight App.xaml用途 Jaso ...

  7. 传世之文《Teach Yourself Programming in Ten Years》十年学会编程

    作为一个正在努力的程序员看了这篇文章之后思考了非常多,虽然是很久之前的文章了,所使用的技术也已经不断地革新,但是文章背后所传递的思想真的非常深刻而有建设性.学习编程真的不是21天24hours的事情, ...

  8. 翻译--十年自学编程

    Peter Norvig 为什么每个人都这么浮躁呢? 走进任何一家书店,你会看到大量的速成书籍,像<如何在24小时内自学Java>,以及许多教你在很短的时间内去学C,SQL,Ruby,算法 ...

  9. 2008最新2000多本最有价值的程序设计电子教程下载

    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z OT A 回顶部 A Computational Differential Geometry A ...

最新文章

  1. 量子技术发展的一小步:Google AI推出开源框架Cirq
  2. 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数...
  3. android找工作 2019,2019年真的很难找工作吗?
  4. 浅析php反序列化字符串逃逸
  5. HTTPS安全超文本传输协议
  6. 4怎样判断动作是否执行_公众号交易时要怎样去判断粉丝是否真实的呢?
  7. c语言 amp amp 逻辑运算符,C++编程中的或||、与amp;amp;、非!逻辑运算符基本用法整理...
  8. 面向对象编程OOP的三大特性
  9. 每日站立会议个人博客(冲刺周)-Wednesday
  10. 在 .NET 6 中使用 DATEONLY 和 TIMEONLY
  11. POJ - Art Gallery(半平面交)
  12. 华为畅享10与10s有什么区别?哪个更好
  13. 【报告分享】小红书品牌营销白皮书2021半年报-新红数据(附下载)
  14. 如何快速恢复最近关闭的浏览器标签页面
  15. 噩梦射手(SurvivalShooter)教程(八)
  16. 神经网络neural network
  17. Spark日志,及设置日志输出级别
  18. java实现智能拼图,JAVA实现拼图游戏
  19. 【Untiy摄像机相对坐标矢量】
  20. STM32串口2初始化

热门文章

  1. 【小松教你手游开发】【unity系统模块开发】Unity5.5.2UI打包AssetBundle
  2. LVS DR模式搭建、keepalived+LVS
  3. windows下安装gevent
  4. Android开发之实现锁屏功能
  5. 总结:SpringMVC 中 GET 和 POST 方式请求中的中文乱码问题
  6. 又收集了一个字体图标站
  7. 手动实现SPring中的AOP(1)
  8. MVC webuploader 图片
  9. .Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法
  10. 道里云SDN云网络技术:使云能够“众筹”