Главная » Silverlight » Фоновый класс

0

Технология XAML позволяет определить пользовательский интерфейс, однако этого недостаточно. Чтобы приложение не просто выводилось на экран, а что-нибудь делало, к интерфейсу нужно подключить обработчики событий, содержащие код приложения. В документе XAML можно легко подключить обработчик с помощью атрибута Class.

1 <UserControl x:Class="SilverlightApplicationl.MainPage"

Префикс x размещает атрибут Class в пространстве имен XAML. Это означает, что атрибут Class является частью языка XAML, а не инфраструктуры Silverlight.

Атрибут Class приказывает синтаксическому анализатору Silverlight сгенери­ровать новый класс, имеющий заданное имя. В данном примере создается новый класс SilverlightApplicationl.MainPage, производный от класса UserControl. Автоматически сгенерированная часть класса объединяется с кодом, добавленным раз­работчиком в фоновый файл.

Обычно каждому файлу XAML соответствует фоновый класс, содержащий клиент­ский код С#. Для файла Page. xaml рабочая среда Visual Studio создает фоновый класс MainPage. xaml. cs. Ниже приведено содержимое файла MainPage . xaml. cs.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

namespace SilverlightApplicationl

{

public partial class MainPage : UserControl {

public MainPage() {

InitializeComponent ();

}

}

}

В данный момент код класса MainPage не содержит никакой функционально­сти. Однако он все же содержит нечто очень важное, а именно — конструктор, вы­зывающий метод InitializeComponent () при создании экземпляра класса. Метод InitializeComponent () проходит по разметке и создает соответствующие объекты, устанавливает их свойства и подключает определенные вами обработчики событий.

Примечание. Метод InitializeComponent () играет ключевую роль в содержимом Silverlight. Поэтому никогда не удаляйте его вызов из конструктора. Кроме того, добавив на страницу другой конструктор, убедитесь в том, что он тоже вызывает метод InitializeComponent ().

Именование элементов

В фоновом классе часто возникает необходимость манипулировать элементами про­граммно, например, для чтения или изменения свойств, для подключения или отклю­чения обработчиков событий во время выполнения и т.д. Чтобы это можно было де­лать, элемент управления должен иметь атрибут Name (Имя) пространства имен XAML. В предыдущем примере элемент управления Grid уже содержит атрибут Name, поэтому им можно манипулировать в коде фонового файла.

6  <Grid x:Name="LayoutRoot">

7  </Grid>

Атрибут Name приказывает синтаксическому анализатору XAML добавить поле в ав­томатически сгенерированную часть класса.

private System.Windows.Controls.Grid layoutRoot;

Теперь к решетке можно обращаться в коде класса страницы с помощью имени

LayoutRoot.

Совет. В традиционных приложениях Windows Forms каждый элемент управления имеет имя. В приложении Silverlight это не обязательно. Если в коде не нужно обращаться к элементу, можете удалить атрибут Name из разметки. В примерах книги имена элементов обычно опущены (когда они не нужны). Благодаря этому разметка становится более краткой.

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии