Silverlight路线图

来源:互联网 发布:js实现简单的三级联动 编辑:程序博客网 时间:2024/04/30 12:45

 

本主题介绍用于开发基于 Silverlight 的应用程序的主要功能。其中包含使用代码示例创建基于 Silverlight 的应用程序的常规步骤,以帮助您初步了解如何编写代码。

本主题包括下列各节。

  • 先决条件
  • 将 Silverlight 集成到应用程序中
  • XAML
  • 布局
  • 控件
  • 添加代码逻辑
  • 动态语言
  • 图形
  • 媒体和动画
  • 数据
  • 网络
  • 相关主题

  先决条件

除了安装 Silverlight 3 运行时之外,无需安装任何程序,即可运行本主题中提供的所有示例。不过,如果要生成或修改这些示例,则需要使用 Silverlight 工具和正在运行的 Silverlight 项目。有关更多信息,请参见Silverlight Tools和如何创建新 Silverlight 项目。

本主题使用 Silverlight 的托管 API。您也可以使用 Silverlight 的 JavaScript API 开发基于 Silverlight 的应用程序。有关更多信息,请参见应用程序和编程模型。

  将 Silverlight 集成到应用程序中

基于 Silverlight 的应用程序是 Silverlight 插件在 HTML 页上加载的内容。Silverlight 插件可以填充整个 HTML 页或仅填充空间的一部分。默认情况下,Visual Studio 项目允许插件占据页面的整个宽度和高度。有关详细信息,请参见如何:使用 HTML 将 Silverlight 添加到网页。

如果要将 Silverlight 仅用于应用程序的一部分,则可能需要从 Silverlight 代码调入 HTML 页,或从 HTML 页调入 Silverlight 代码。有关如何完成此操作的详细信息,请参见 HTML Bridge:HTML 和托管代码之间的交互。如果具有现有 ASP.NET 页,则可以在该页中嵌入 MediaPlayer 控件或 Silverlight 服务器控件。有关更多信息,请参见 Silverlight 的 ASP.NET 控件。

  XAML

XAML 是一种声明性标记语言,可用来为基于 Silverlight 的应用程序定义 UI 元素。创建新的 Visual Studio 项目时,会自动创建 Page.xaml 文件。在 XAML 文件中,可以使用 XML 标记和属性 (Attribute) 创建对象和定义对象的属性 (property)。有关 XAML 的更多信息,请参见 XAML 概述。

下面是一个用于创建红色矩形的简单 XAML 语句。

XAML

复制代码

前面示例生成的输出结果与下图相似。

红色矩形

可以使用 XAML 创建所有 UI,也可以使用 Microsoft Expression Blend 设计应用程序。Expression Blend 是一种用于创建基于 Silverlight 的应用程序的设计器工具,具有 WYSIWYG 设计图面。Expression Blend 生成可直接编辑的 XAML 文件。使用 Expression Blend 还可以挂钩事件和编写代码隐藏。有关更多信息,请参见 Silverlight QuickStart Using Microsoft Expression Blend(Silverlight 快速入门,使用 Microsoft Expression Blend)。

  布局

创建基于 Silverlight 的应用程序时,首先要决定如何设置 UI 的布局。Silverlight 提供了 3 个可供使用的布局面板。默认的面板为 Grid,它是最灵活和最强大的布局面板。

容器

说明

Canvas

在 x,y 空间中绝对定位子元素。

StackPanel

相对于水平或垂直堆栈中的另一个子元素来定位子元素。

Grid

在行和列中定位子元素。

在下面的示例中,Rectangle 元素放置在网格的 1,1 单元格中。网格使用从零开始的索引,因此该矩形出现在右下单元格中。

XAML

复制代码

                                                    

前面示例生成的输出结果与下图相似。

网格中的红色矩形

有关布局的更多信息,请参见Silverlight 布局系统。

  控件

Silverlight 中的控件允许您承载内容或其他控件,且可以设计为向用户显示状态更改。控件功能的范围从允许用户交互的元素(例如 Button 或 TextBox)到元素支持复杂信息布局的元素(例如 DataGrid)。有关所有可用控件的列表,请参见控件和对话框。

Silverlight 为每个控件提供了影响控件外观的默认模板。不过,您可以创建自定义模板来更改所有控件的外观和可视行为。有关更多信息,请参见控件自定义。

下面的示例采用上面的示例,并向网格的 0,0 单元格添加一个按钮。

XAML

复制代码

                                                    

前面示例生成的输出结果与下图相似。

网格中的按钮和红色矩形

  添加代码逻辑

默认情况下,Visual Studio 项目包含一个代码文件(有时称作代码隐藏文件)。该代码文件包含 Silverlight 通过公共语言运行时 (CLR) 支持的托管语言之一(例如 C# 或 Visual Basic)。有关 CLR 和 Silverlight 的更多信息,请参见公共语言运行时。

代码隐藏文件名称采用 Page.xaml 的形式并追加了语言类型(例如 Page.xaml.cs)。使用代码隐藏文件可以向 XAML 对象应用逻辑。可以使用代码创建 UI 对象,然后将它们添加到可见元素树中。另外,可以从 XAML 访问在代码隐藏文件(和项目中包含的任何代码文件)中创建的类。例如,您可以定义自己的控件,然后使用 XAML 创建它们的实例。有关更多信息,请参见 XAML 名称范围和 Silverlight XAML 命名空间以及将 XAML 命名空间映射为前缀。

下面的示例添加一个将矩形颜色更改为蓝色的 Click 事件处理程序。

使用 XAML,将 Click 事件添加到 Button,将 x:Name 属性添加到 Rectangle。使用 x:Name 可以引用代码隐藏文件中的矩形。

XAML

复制代码

在代码隐藏文件中,定义 Click 事件处理程序。有关如何使用事件的更多信息,请参见Silverlight 的事件概述。

Visual Basic

复制代码

Private Sub Button_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)    rect1.Fill = New SolidColorBrush(Colors.Blue)End Sub

C#

复制代码

private void Button_Click(object sender, RoutedEventArgs e){    rect1.Fill = new SolidColorBrush(Colors.Blue);}

前面示例生成的输出结果与下图相似。

按钮单击从红色矩形更改为蓝色

运行此示例

  动态语言

用于 Visual Studio 的 Silverlight 工具包含动态语言运行时 (DLR),动态语言运行时允许动态语言(例如 Python 和 Ruby)的用户编写基于 Silverlight 的应用程序。动态语言打包成源代码,而不是编译为程序集,可以在运行时生成和编译代码。它们非常适合于灵活的交互开发风格。Silverlight 包含三种动态语言:IronPython、IronRuby 和托管 JScript。有关更多信息,请参见 Silverlight 中的动态语言。

  图形

Silverlight 提供了许多向应用程序添加有趣的可视功能的选项。您可以使用绘图、形状、路径和复杂几何图形。使用画笔,可以用各种效果(例如图像、颜色渐变或视频剪辑)来填充几何图形所定义的区域。有关更多信息,请参见形状和绘图、几何图形和画笔。

您可以在此屏幕上转换图形以及其他对象(例如,旋转或倾斜)。您甚至可以应用三维效果。请参见变换和三维效果(透视转换)。

可以向应用程序添加图像和图像效果。Silverlight 还包含"深度缩放",可以借助该功能轻松缩放和平移大型详图。有关更多信息,请参见图像处理和Deep Zoom。

下面的示例使用线性渐变画笔填充矩形。

XAML

复制代码

                                                                        

前面示例生成的输出结果与下图相似。

线性渐变矩形

  媒体和动画

除了静态图形,还可以向应用程序添加动画、音频和视频,以使应用程序更具动态和交互性。有关更多信息,请参见动画概述和音频和视频概述。

下面的示例将上面示例中的矩形进行缩放,直到单击了"停止"按钮。

运行此示例

XAML

复制代码

                                                                                                    

Visual Basic

复制代码

Private Sub OnLoaded(ByVal sender As Object, ByVal e As RoutedEventArgs)    AnimateRectangle.Begin()End SubPrivate Sub Button_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)    AnimateRectangle.Pause()End SubPrivate Sub Button_Click_1(ByVal sender As Object, ByVal e As RoutedEventArgs)    AnimateRectangle.[Resume]()End Sub

C#

复制代码

private void OnLoaded(object sender, RoutedEventArgs e){    AnimateRectangle.Begin();}private void Button_Click(object sender, RoutedEventArgs e){    AnimateRectangle.Pause();}private void Button_Click_1(object sender, RoutedEventArgs e){    AnimateRectangle.Resume();}

  数据

许多基于 Silverlight 的应用程序都使用数据。可以使用控件(例如 DataGrid 和 ListBox)显示数据集。若要填充 UI,可以使用数据绑定。如果将 UI 绑定到数据对象,对对象的更新将自动传播到 UI。

应用程序中的数据可能来自各种源(例如 RSS 源),但它通常采用 XML 格式。Silverlight 包含用于分析 XML 数据的 XmlReader 和 LINQ。如果要分析小块数据,LINQ 会很有帮助。有关更多信息,请参见 XML 数据。

  网络

Silverlight 提供了一些用于在群中进行通信的功能。WebClient 类用于处理到客户端的内容下载。您还可以使用 WebClient 发送和接收纯文本 XML 消息。基于 Silverlight 的应用程序还可以访问 Web 服务(例如 Windows Communication Foundation (WCF)、SOAP 和 ASP.NET AJAX)。有关更多信息,请参见网络和通信。

  请参见

其他资源

演练:使用 Expression Blend 或代码创建 Silverlight 时钟

Silverlight 结构

Silverlight 入门

关于 Silverlight 文档

原创粉丝点击