Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метода_progmob.docx
Скачиваний:
15
Добавлен:
07.02.2016
Размер:
855.41 Кб
Скачать
    1. Использование контейнеров для группировки элементов

Среди элементов Silverlight есть элементы-контейнеры, которые могут содержать другие элементы. Существует несколько различных типов контейнеров, среди которых есть элемент StackPanel.

Элемент StackPanel содержит последовательность элементов Silverlight. Он позволяет располагать вложенные в него элементы в определенном порядке. Элементы в контейнере могут располагаться вертикально (сверху вниз) или горизонтально (слева направо). Вместо того, чтобы настраивать для визуальных элементов отступы от краев экрана, можно поручить эту работу элементу StackPanel:

<StackPanel>

<TextBox InputScope="Digits" Height="72" HorizontalAlignment="Center"

Name="firstNumberTextBox" VerticalAlignment="Top" Width="460"

TextAlignment="Center" />

<TextBlock Height="56" HorizontalAlignment="Center" Name="plusTextBlock" Text="+"

VerticalAlignment="Top" FontSize="32" Width="25" />

<TextBox InputScope="Digits" Height="72" HorizontalAlignment="Center"

Name="secondNumberTextBox" VerticalAlignment="Top" Width="460"

TextAlignment="Center" />

<TextBlock Height="46" HorizontalAlignment="Center" Name="resultTextBlock"

VerticalAlignment="Top" FontSize="30" Width="160" TextAlignment="Center" />

</StackPanel>

Элементы StackPanel решают сами, как будут отображаться элементы на экране. В этом коде лишь указано выравнивание всех элементов по центру выделенной им области.

При таком подходе возникает очень полезный побочный эффект, который заключается в том, что контейнер StackPanel автоматически перестроит элементы при изменении ориентации экрана (рис. 15).

Рис. 15. Приложение Сумматор, использующее элемент StackPanel

Элемент StackPanel можно добавить к проекту, перетащив его с панели инструментов Visual Studio в окно дизайнера или вводя текст XAML вручную. Если элементStackPanel должен группировать элементы горизонтально, нужно указать соответствующий атрибут:

<StackPanel Orientation="Horizontal">

Также можно поместить один StackPanel в другой, что позволяет использовать другую группировку вложенных элементов.

Существуют и другие типы контейнеров. Один из них — элемент Grid. Он позволяет создать прямоугольную сетку из элементов, в каждом из которых может размещаться один или несколько элементов. Фактически в приложении Сумматор экран содержит сетку, состоящую из одного элемента, который занимает всю доступную область экрана.

  1. Отображение списков данных

Часто в приложениях необходимо выводить списки каких-либо объектов. Для этого необходимы специальные средства, предусматривающие отображение списочных данных.

В качестве примера рассмотрим создание списка клиентов компании. Информация о клиентах включает: имя клиента, адрес и идентификатор. Класс Customer может выглядеть так:

public class Customer

{

public string Name { get; set; }

public string Address { get; set; }

public int ID { get; set; }

public Customer(string inName, string inAddress, int inID)

{

Name = inName;

Address = inAddress;

ID = inID;

}

}

Этот класс имеет единственный метод, который является конструктором, принимающим три параметра.

Теперь нужно сохранить список клиентов. Лучший способ для хранения списков объектов — использование класса List, который входит в состав языка C#. Можно создать класс Customers, содержащий имя списка клиентов и сам список:

public class Customers

{

public string Name { get; set; }

public List<Customer> CustomerList;

public Customers(string inName)

{

Name = inName;

CustomerList = new List<Customer>();

}

}

Класс Customers содержит единственный метод, который является конструктором класса. Он определяет имя списка и создает пустой список. Используя этот класс, можно создать новый список таким образом:

Customers mailCustomers = new Customers("Список клиентов");

Теперь нужно заполнить созданный пустой список информацией о клиентах.