Silverlight 项目类型



如果您在 Visual Studio 中创建一个新项目,您将在对话框的右侧窗格中看到四种类型的项目。它们是:

  • Silverlight 应用程序
  • Silverlight 类库
  • 类库(可移植)
  • Silverlight 导航应用程序
Silverlight New Application
  • 前两种,**Silverlight 应用程序** 和 **Silverlight 类库**,都足够简单明了。它们类似于经典 Windows 应用程序世界中的可执行文件和 DLL。由于 Silverlight 应用程序的部署方式,两者都构建 DLL。

  • 从概念上讲,Silverlight 应用程序项目构建一个可以运行的程序,而类库项目构建一个旨在集成到其他应用程序中的库。

  • 如果您计划构建多个应用程序并希望重用公共代码,则可以构建类库。如果您计划销售其他人将在其应用程序中使用的控件,那么库也是需要构建的。

  • 其他项目类型不太明显,因此我们将在本章后面详细介绍这些内容。

Silverlight Web 应用程序

Silverlight 应用程序是从 Web 下载的,因此您通常会将一个 Web 项目与 Silverlight 项目相关联。Visual Studio 有几个功能,旨在管理这些项目之间的关系。

让我们再来看一个简单的 Silverlight 应用程序项目示例。

**步骤 1** - 打开 **Visual Studio**。单击 **文件** 菜单,指向 **新建**,然后单击 **项目**。

Create a Web-page

**步骤 2** - 将打开一个 **新建项目** 对话框。在 **模板** 下,选择 **Visual C#**,然后单击 **Silverlight**。在右侧窗格中,选择 Silverlight 应用程序。

Silverlight Application

输入项目名称和硬盘驱动器上保存项目的路径。

Silverlight 项目本身只是构建 Silverlight 内容,而该内容只是构成整个 Web 应用程序的众多资源之一。

单击 **确定**。

**步骤 3** - 选中 **托管 Silverlight 应用程序复选框**。默认值是 ASP.NET Web 应用程序项目。

New Silverlight Application

**步骤 4** - MS-Visual Studio 创建了两个项目:Silverlight 项目和 ASP.NET Web 应用程序。现在,我们需要一个 ASP.NET Web 应用程序。您可以在 **解决方案资源管理器** 窗口中看到这一点,如下所示。

Solution Explorer

任何可以通过 HTTP 提供内容的服务器端技术都可以,但这可是 **Visual Studio**,它理解 ASP.NET Web 技术,所以这就是它提供给我们的。

为了证明 Silverlight 不依赖于任何特定的服务器端技术,让我们删除此 .aspx 文件,只留下普通的静态 HTML 文件。

**步骤 5** - 右键单击 FirstExampleTestpage.aspx。从选项列表中,单击 **删除**。

FirstExampleTestpage aspx

**步骤 6** - 将 **FirstExampleTestPage.html** 设置为 **启动** 页。

FirstExampleTestpage html

**MainPage.xaml** 文件定义 Silverlight 内容的用户界面。您可以直接编写 XAML 代码,也可以使用 **工具箱** 拖放不同的 UI 元素。

**步骤 7** - 下面是在 **MainPage.xaml** 中的一段简单代码,其中在 **StackPanel** 内定义了 **Button** 和 **TextBlock**。

<UserControl x:Class = "FirstExample.MainPage" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   mc:Ignorable = "d" 
   d:DesignHeight = "300" d:DesignWidth = "400">  
   
   <Grid x:Name = "LayoutRoot" Background = "White"> 
      <StackPanel> 
         <TextBlock x:Name = "TextMessage" Text = "Hello World!"  
            Margin = "5"> </TextBlock> 
         <Button x:Name = "ClickMe" Click = "ClickMe_Click" Content = "Click 
            Me!"  Margin = "5"> </Button> 
      </StackPanel> 
   </Grid> 
	
</UserControl>

**步骤 8** - 此示例假设您已创建一个名为 **ClickMe_Click** 的事件处理方法。以下是它在 **MainPage.xaml.cs** 文件中的样子。

using System.Windows; 
using System.Windows.Controls;
  
namespace FirstExample { 

   public partial class MainPage : UserControl { 
	
      public MainPage() { 
         InitializeComponent(); 
      } 
	  
      private void ClickMe_Click(object sender, RoutedEventArgs e) { 
         TextMessage.Text = "Congratulations! you have created your 
            first Silverlight Applicatoin"; 
      } 
   } 
}

**步骤 9** - Silverlight 应用程序可以在任何已安装的浏览器上运行。

Silverlight Application Run

**步骤 10** - 当编译并执行上述代码时,您将看到以下网页。

Compiled Executed

Silverlight 导航应用程序

Silverlight 导航应用程序模板构建的项目类似于普通的 Silverlight 应用程序。这两种项目类型之间没有任何根本区别。导航模板只是包含一些您可以轻松添加的额外代码。顾名思义,它支持 Silverlight 应用程序内的类似 Web 的导航。

让我们创建一个导航应用程序。

**步骤 1** - 在 **新建项目** 对话框的右侧窗格中选择 **Silverlight 导航应用程序**。

Silverlight Navigation Application

**步骤 2** - 按照您对 Silverlight Web 应用程序的操作设置。

Silverlight Web Application

**步骤 3** - 单击 **确定** 按钮。将打开一个窗口,如下所示。

Silverlight Navigation App.Web

这些通常都有一个关联的 Web 项目,所以我们将拥有其中一个。它创建了前面描述的两个项目,但正如您所看到的,默认用户界面看起来不那么空白。

**步骤 4** - 它提供了一个应用程序 Chrome,包括一个导航栏。解决方案包含一些额外的文件。此 **Styles** 文件定义了 **Navigation** 栏的外观。在这个 **Views** 文件夹中,我们看到几个页面,还有一个用于显示错误的窗口。

Navigation Bar

如您所见,当您运行应用程序时,它会显示一个包含一些占位符内容的主页。

Application Name

**步骤 5** - 当您单击 **关于** 按钮时,它将导航到 **关于** 页面。

About page

重要的是,您可以使用浏览器 **后退** 和 **前进** 按钮来追溯步骤。

通常情况下,当您这样做时,Web 浏览器会从一个网页跳转到另一个网页,但在这里它不会。Silverlight 应用程序实际上并没有卸载;它保持运行,只是显示不同的内容。

因此,从浏览器的角度来看,它实际上都在一个网页上。Silverlight 对导航按钮做了一些技巧,以确保在导航时网页不会卸载。

广告