Silverlight - 项目类型

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

  • Silverlight 应用程序
  • Silverlight 类库
  • Silverlight 类库(便携式)
  • Silverlight 导航应用程序
Silverlight 新应用程序
  • 前两个,Silverlight 应用程序Silverlight 类库,非常简单。 它们类似于经典 Windows 应用程序中 DLL 中的可执行文件。 两者都根据 Silverlight 应用程序的部署方式构建 DLL。

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

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

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

Silverlight Web 应用程序

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

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

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

创建网页

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

Silverlight 应用程序

输入项目名称和硬盘上的位置以保存项目。

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

单击确定

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

新 Silverlight 应用程序

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

解决方案资源管理器

任何可以通过 HTTP 提供内容的东西都可以,但这是 Visual Studio,它理解 ASP.NET Web 技术,所以这就是它为我们提供的。

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

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

FirstExampleTestpage aspx

步骤 6 − 将 FirstExampleTestPage.html 设置为开始页面。

FirstExampleTestpage html

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

步骤 7 − 下面给出的是 MainPage.xaml 中的简单代码,其中在 StackPanel 内定义了 ButtonTextBlock

<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 应用程序运行

步骤 10 − 当上面的代码编译并执行后,您将看到以下网页。

编译执行

Silverlight 导航应用程序

Silverlight 导航应用程序模板构建一个类似于普通 Silverlight 应用程序的项目。 这两种项目类型没有什么本质上的不同。 导航模板仅包含一些您可以轻松添加的附加代码。 顾名思义,它支持 Silverlight 应用程序内类似 Web 的导航。

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

步骤 1 − 从新建项目对话框的右窗格中选择Silverlight导航应用程序

Silverlight 导航应用程序

步骤 2 − 按照您对 Silverlight Web 应用程序所做的设置进行操作。

Silverlight Web 应用程序

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

Silverlight 导航应用程序.Web

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

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

导航栏

正如您所看到的,当您运行该应用程序时,它会显示一个带有一些占位符内容的主页。

应用程序名称

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

关于页面

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

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

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