技术开发 频道

用Visual Studio2008玩转Silverlight(二)



【IT168 专稿】

用Visual Studio2008玩转Silverlight(一)

四、使用XAML建立用户接口

    我们在上面提及过,Visual Studio 2008有支持XAML内容的智能编辑器。使用这项功能可以使建立UI变得更高效。但不幸的是在Visual Studio 2008以前的版本并不支持这个功能。这就意味着每次我们写完XAML代码后,都必须运行它才能知道结果是不是我们所需要的。

    好消息是我们可以使用微软提供的另一个工具来编写XAML代码,这就是Expression Blend。微软Expression Blend是一个用于为Windows程序建立专业UI的专业设计器。Blend的最新版本是Expression Blend 2,是今年八月出的预览版,这一版本允许我们建立基于Silverlight的应用程序。

    为了使用Expression Blend 2打开Page.xaml页,在Visual Studio 2008中右击这页,并选择使用Expression Blend打开,如图4所示:

4 使用Expression Blend打开XAML

   
这时Expression Blend 2将启动,我们将看到和Visual Studio 2008类似的开发环境,如图5所示:



 5 使用Expression Blend 2编辑Page.xaml文件


   
现在让我们在这个页中加入一些控件。首先,我们将在Page.xaml页中建立一个圆角的按钮。如图6所示。在这个按钮中,我们还加入了一个文本区,可以使用它来演示一些信息。



 图6 在Page.xaml中建立一个圆角按钮和一个文本区

单击如图7的画布控件,将它加到Page.xaml中。这个画布将作为所有控件的载体。



         图7将一个画布加到Page.xaml中
    为了在按钮上建立一个边框,在页面上加一个长方形控件,并覆盖我们刚才加的那个画布,如图8所示:


 图8 向画布中加入一个长方形框

    为了建立有四个圆角的方框,单击Direction Selection图标,然后选择我们刚刚加的Rectangle控件,如图9所示。并设黑这个控件的属性如下:

 
RadiusX - 8
RadiusY - 8
StrokeThickness - 3

    另外,我们还可以设置边框的背景颜色为黄色,如图9所示



图9 设置背景颜色为黄色

    为了在按钮中显示文本信息,我们需要在画布上加一个TextBlock控件,并设置字体为Comic Sans MS。



图10 在画布中加入一个TextBlock

    为了使按钮显示当前时间,我们需要每秒更新一次时间信息。为了完成这个任务,需要在XAML文件中加入一个Timeline。首先,单击Objects和Timeline组中的>箭头,然后按+按钮,如图11所示:

图11 向XAML文件中加一个Timeline

    我们会被问是否为这个Timeline重新命名,在本例中使用默认的名子:Timeline1,然后单击OK按钮。

    现在我们的XAML文件看上去象图12所示,最后保存XAML文件。



12 加完Timeline后的XAML文件效果


   
当我们现在返回到Visual Studio2008后,由于Page.xaml在外部被Expression Blend编辑过了,因此,VS2008会询问是否要重新装载Page.xaml文件。一但我们重新转载这个文件,就会得到以下的XAML内容:

<Canvas xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="parentCanvas" Loaded="Page_Loaded" x:Class="OurFirstSilverlightProject.Page;assembly=ClientBin/ OurFirstSilverlightProject.dll" Width="640" Height="480" Background="White" > <Canvas.Triggers> <EventTrigger RoutedEvent="Canvas.Loaded"> <BeginStoryboard> <Storyboard x:Name="Timeline1"/> </BeginStoryboard> </EventTrigger> </Canvas.Triggers> <Canvas Width="189" Height="44" Canvas.Left="8" Canvas.Top="8"> <Rectangle Width="189" Height="44" Fill="#FFF4FB04" Stroke="#FF000000" StrokeThickness="3" RadiusX="8" RadiusY="8"/> <TextBlock Width="168" Height="23" Canvas.Left="10" Canvas.Top="11" Text="TextBlock" TextWrapping="Wrap" FontFamily="Comic Sans MS"/> </Canvas> </Canvas>
  为了使画布对象在编程时可访问,需要按如下方式将x-Name属性设置为btnTime。

       <Canvas x:Name="btnTime" Width="189" Height="44"
          Canvas.Left="8" Canvas.Top="8">
     要注意的是在Expression Blend2中,我们可以在设计器和XAML代码视图之间切换,如图13所示:



13 Expression Blend2中切换设计器和XAML视图

 

 

0
相关文章