Silverlight - 项目类型

如果在Visual Studio中创建新项目,则会在对话框的右窗格中看到四种类型的项目.它们是 :

  • 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 Application

输入项目名称和硬盘驱动器上的位置以保存项目.

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

点击确定.

第3步 &减去;选中托管Silverlight应用程序复选框.默认是ASP.NET Web应用程序项目.

新Silverlight应用程序

第4步 :  MS-Visual Studio创建了两个项目,Silverlight项目和ASP.NET Web应用程序.现在,我们需要一个ASP.NET Web应用程序.您可以在 Solution Explorer 窗口中看到这一点,如下所示.

解决方案资源管理器

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

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

第5步 : 右键单击FirstExampleTestpage.aspx.从选项列表中,单击删除.

FirstExampleTestpage aspx

第6步 : 将 FirstExampleTestPage.html 设为开始页.

FirstExampleTestpage html

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

步骤7 : 下面给出了 MainPage.xaml 中的一个简单代码,其中 Button TextBlock StackPanel 中定义.

<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步 : 编译并执行上述代码后,您将看到以下网页.

已编译已执行

Silverlight导航应用程序

Silverlight导航应用程序模板构建类似于普通Silverlight应用程序的项目.两种项目类型没有根本不同.导航模板只包含一些您可以轻松添加的附加代码.顾名思义,它支持Silverlight应用程序中的类似Web的导航.

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

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

Silverlight导航应用程序

步骤2 : 按照您为Silverlight Web应用程序所做的设置进行操作.

Silverlight Web Application

第3步 : 单击确定按钮.将打开一个窗口,如下所示.

Silverlight Navigation App.Web

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

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

导航栏

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

申请名称

第5步 : 当您点击关于按钮时,它将导航到关于页面.

关于页面

重要的是你可以使用浏览器后退前进按钮来追溯步骤.

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

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