Учебники

Silverlight — Обзор XAML

Одна из первых вещей, с которой вы столкнетесь при работе с Silverlight, — это XAML. XAML означает расширяемый язык разметки приложений. Это простой и декларативный язык, основанный на XML.

  • В XAML очень легко создавать, инициализировать и устанавливать свойства объекта с иерархическими отношениями.

  • Он в основном используется для разработки графического интерфейса.

  • Его можно использовать и для других целей, например, для объявления рабочего процесса в основании Workflow.

В XAML очень легко создавать, инициализировать и устанавливать свойства объекта с иерархическими отношениями.

Он в основном используется для разработки графического интерфейса.

Его можно использовать и для других целей, например, для объявления рабочего процесса в основании Workflow.

Основной синтаксис

Когда вы создаете новый проект Silverlight, вы увидите некоторый код XAML по умолчанию в MainPage.xaml, как показано ниже.

<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"> 
         
   </Grid> 
	
</UserControl>

Вы можете видеть, что файл XAML, приведенный выше, упоминает различные виды информации; все они кратко описаны в таблице ниже.

Информация Описание
<UserControl Предоставляет базовый класс для определения нового элемента управления, который инкапсулирует существующие элементы управления и предоставляет свою собственную логику.
x: Class = «FirstExample.MainPage» Это частичное объявление класса, которое связывает разметку с этим частичным кодом класса, определенным в нем.
xmlns = «http://schemas.microsoft.com / winfx / 2006 / xaml / presentation» Сопоставляет пространство имен XAML по умолчанию для клиента / инфраструктуры Silverlight.
xmlns: x = «http: //schemas.microsoft.c om / winfx / 2006 / xaml» Пространство имен XAML для языка XAML, которое сопоставляет его с префиксом x :.
xmlns: d = «http://schemas.microsoft.com / expression / blend / 2008» Пространство имен XAML предназначено для поддержки дизайнера, в частности, поддержки дизайнера в поверхностях разработки XAML Microsoft Visual Studio и Microsoft Expression Blend.
xmlns: mc = «http: //schemas.openxmlforma ts.org/markup-compatibility/2006» Указывает и поддерживает режим совместимости разметки для чтения XAML.
> Конец объекта элемента корня.
<Grid> </ Grid> Это начальный и закрывающий теги пустого объекта сетки.
</ UserControl> Закрытие элемента объекта.

Синтаксические правила для XAML почти аналогичны правилам XML. Если вы посмотрите на документ XAML, вы заметите, что на самом деле это действительный файл XML. Его обратное неверно, поскольку в XML значение атрибутов должно быть строкой, а в XAML это может быть другой объект, известный как синтаксис элемента Property.

  • Синтаксис элемента Object начинается с левой угловой скобки (<), за которой следует имя объекта, например, Button.

  • Свойства и атрибуты этого элемента объекта определены.

  • Элемент Object должен быть закрыт косой чертой (/), за которой сразу следует правая угловая скобка (>).

Синтаксис элемента Object начинается с левой угловой скобки (<), за которой следует имя объекта, например, Button.

Свойства и атрибуты этого элемента объекта определены.

Элемент Object должен быть закрыт косой чертой (/), за которой сразу следует правая угловая скобка (>).

Пример простого объекта без дочернего элемента показан ниже.

<Button/> 

Пример элемента объекта с некоторыми атрибутами —

<Button Content = "Click Me" Height = "30" Width = "60"/> 

Пример альтернативного синтаксиса для определения свойств (синтаксис элемента свойства) —

<Button> 
   <Button.Content>Click Me</Button.Content> 
   <Button.Height>30</Button.Height> 
   <Button.Width>60</Button.Width> 
</Button>  

Пример объекта с дочерним элементом: StackPanel содержит Textblock в качестве дочернего элемента.

<StackPanel Orientation = "Horizontal"> 
   <TextBlock Text = "Hello"/> 
</StackPanel/> 

Почему XAML в Silverlight

Изначально XAML не был изобретен для Silverlight. Он пришел из WPF, Windows Presentation Foundation. Silverlight часто описывается как подмножество WPF. Это не совсем верно, так как Silverlight может делать некоторые вещи, которые WPF не может делать. Даже там, где функциональность частично совпадает, они немного различаются в деталях.

  • Точнее сказать, что WPF и Silverlight очень похожи во многих отношениях. Несмотря на различия, все еще информативно смотреть на функцию XAML, которую Silverlight позаимствовал у WPF. Например, Silverlight предлагает графические примитивы для растровых изображений и масштабируемых фигур.

  • Он также предоставляет элементы для рендеринга видео и аудио.

  • Он имеет простую поддержку форматированного текста, и вы можете анимировать любой элемент. Если вы знаете WPF, этот набор функций будет вам знаком.

  • Один важный момент: вы не можете взять WPF XAML и использовать его в Silverlight.

  • Хотя есть сходства, вы также найдете множество небольших различий.

Точнее сказать, что WPF и Silverlight очень похожи во многих отношениях. Несмотря на различия, все еще информативно смотреть на функцию XAML, которую Silverlight позаимствовал у WPF. Например, Silverlight предлагает графические примитивы для растровых изображений и масштабируемых фигур.

Он также предоставляет элементы для рендеринга видео и аудио.

Он имеет простую поддержку форматированного текста, и вы можете анимировать любой элемент. Если вы знаете WPF, этот набор функций будет вам знаком.

Один важный момент: вы не можете взять WPF XAML и использовать его в Silverlight.

Хотя есть сходства, вы также найдете множество небольших различий.

XAML и код позади

XAML определяет внешний вид и структуру пользовательского интерфейса. Однако, если вы хотите, чтобы ваше приложение делало что-то полезное, когда пользователь взаимодействует с ним, вам потребуется некоторый код.

  • Каждый файл XAML обычно связан с файлом исходного кода, который мы называем кодом позади. Различные платформы Microsoft используют этот термин.

  • В коде обычно требуется использовать элементы, определенные в XAML, либо для получения информации о пользовательском вводе, либо для отображения информации для пользователя.

  • В приведенном ниже коде XAML определены TextBlock и Button . По умолчанию при запуске приложения будет отображаться текст « Hello World! На веб-странице и кнопку.

Каждый файл XAML обычно связан с файлом исходного кода, который мы называем кодом позади. Различные платформы Microsoft используют этот термин.

В коде обычно требуется использовать элементы, определенные в XAML, либо для получения информации о пользовательском вводе, либо для отображения информации для пользователя.

В приведенном ниже коде XAML определены TextBlock и Button . По умолчанию при запуске приложения будет отображаться текст « Hello World! На веб-странице и кнопку.

<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> 
  • Код позади может получить доступ к любому элементу, который назван с помощью директивы x: Name .

  • Именованные элементы становятся доступными через поля в коде, что позволяет коду обращаться к этим объектам и их элементам обычным способом.

  • Префикс x: означает, что имя не является обычным свойством.

  • x: Name — это специальный сигнал компилятору XAML о том, что мы хотим иметь доступ к этому объекту в коде позади.

Код позади может получить доступ к любому элементу, который назван с помощью директивы x: Name .

Именованные элементы становятся доступными через поля в коде, что позволяет коду обращаться к этим объектам и их элементам обычным способом.

Префикс x: означает, что имя не является обычным свойством.

x: Name — это специальный сигнал компилятору XAML о том, что мы хотим иметь доступ к этому объекту в коде позади.

Ниже приведена реализация события нажатия кнопки, в которой обновляется текст TextBlock .

XAML — не единственный способ разработки элементов пользовательского интерфейса. Вы можете либо объявить объекты в XAML, либо объявить / записать в коде.

XAML не обязателен, но, несмотря на это, он является сердцем дизайна Silverlight .

Цель кодирования XAML — дать возможность визуальным дизайнерам создавать элементы пользовательского интерфейса напрямую. Поэтому Silverlight стремится сделать возможным управление всеми визуальными аспектами пользовательского интерфейса из разметки.