📜  Silverlight-XAML概述

📅  最后修改于: 2020-11-19 08:25:19             🧑  作者: Mango


XAML是使用Silverlight时遇到的第一件事。 XAML代表可扩展的应用程序标记语言。它是一种基于XML的简单声明性语言。

  • 在XAML中,创建,初始化和设置具有层次关系的对象的属性非常容易。

  • 它主要用于设计GUI。

  • 它也可以用于其他目的,例如,在Workflow Foundation中声明工作流。

基本语法

创建新的Silverlight项目时,默认情况下,您将在MainPage.xaml中看到一些XAML代码,如下所示。

 
    
    
         
    
    

您可以看到上面给出的XAML文件提到了各种信息。所有这些都在下表中简要描述。

Information Description
Provides the base class for defining a new control that encapsulates the existing controls and provides its own logic.
x:Class = “FirstExample.MainPage” It is a partial class declaration, which connects the markup to that partial class code behind, defined in it.
xmlns = “http://schemas.microsoft.com /winfx/2006/xaml/presentation” Maps the default XAML namespace for Silverlight client/framework.
xmlns:x = “http://schemas.microsoft.c om/winfx/2006/xaml” XAML namespace for XAML language, which maps it to x: prefix.
xmlns:d = “http://schemas.microsoft.com /expression/blend/2008” XAML namespace is intended for designer support, specifically designer support in the XAML design surfaces of Microsoft Visual Studio and Microsoft Expression Blend.
xmlns:mc = “http://schemas.openxmlforma ts.org/markup-compatibility/2006” Indicates and supports a markup compatibility mode for reading XAML.
> End of object element of the root.
These are the starting and closing tags of an empty grid object.
Closing the object element.

XAML的语法规则几乎与XML相似。如果查看XAML文档,您会发现它实际上是一个有效的XML文件。反之亦然,因为在XML中,属性的值必须为字符串,而在XAML中,属性的值可以为不同的对象,这称为属性元素语法。

  • Object元素的语法以左尖括号(<)开头,后跟对象名称,例如Button。

  • 定义了该对象元素的属性和属性。

  • Object元素必须用正斜杠(/)紧跟,然后紧跟一个直角括号(>)。

没有子元素的简单对象示例如下所示。

 

具有某些属性的对象元素的示例-

 

定义属性的替代语法示例(属性元素语法)-

  

具有子元素的对象的示例:StackPanel包含Textblock作为子元素。

 
    
 

为什么在Silverlight中使用XAML

XAML最初不是为Silverlight发明的。它来自Windows Presentation Foundation WPF。 Silverlight通常被描述为WPF的子集。这并不是严格意义上的,因为Silverlight可以执行WPF无法执行的某些操作。即使功能重叠,两者的细节也略有不同。

  • 准确地说,WPF和Silverlight在许多方面都非常相似。尽管存在差异,但查看Silverlight从WPF借来的XAML功能仍然很有帮助。例如,Silverlight提供了用于位图和可缩放形状的图形基元。

  • 它还提供了用于渲染视频和音频的元素。

  • 它具有简单的格式化文本支持,并且您可以为任何元素设置动画。如果您知道WPF,则将熟悉此功能集。

  • 重要的一点是,您不能使用WPF XAML并在Silverlight中使用它。

  • 尽管存在相似之处,但您还会发现许多小的差异。

XAML和代码隐藏

XAML定义了用户界面的外观和结构。但是,如果您希望应用程序在用户与其交互时做任何有用的事情,则将需要一些代码。

  • 每个XAML文件通常与一个源代码文件相关联,我们将其称为后面的代码。各种Microsoft框架都使用此术语。

  • 后面的代码通常将需要使用XAML中定义的元素,以检索有关用户输入的信息或向用户显示信息。

  • 在下面给出的XAML代码中,定义了TextBlockButton 。默认情况下,运行该应用程序时,它将显示文本“ Hello World!网页上的“”和一个按钮。


   
    
       
          
          
            
          
            
       
    
 
  • 后面的代码可以访问以x:Name指令命名的任何元素。

  • 通过后面的代码中的字段,可以使用命名元素,从而使代码能够以通常的方式访问这些对象及其成员。

  • x:Prefix表示该名称不是普通属性。

  • x:Name是XAML编译器的特殊信号,表示我们希望可以在后面的代码中访问此对象。

下面给出的是按钮单击事件实现,其中TextBlock文本已更新。

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"; 
      } 
   } 
}
  • XAML不是设计UI元素的唯一方法。由您决定在XAML中声明对象还是在代码中声明/写入。

  • XAML是可选的,但是尽管如此,它还是Silverlight设计的核心。

  • XAML编码的目标是使视觉设计人员能够直接创建用户界面元素。因此, Silverlight旨在通过标记来控制用户界面的所有可视方面。