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

XAML является декларативным языком и используется для описания и настройки объектов Silverlight. Например, можно настроить режим ввода для элементов TextBox для ввода чисел.

Конфигурирование элемента TextBox для использования цифровой клавиатуры. На текущий момент программа Сумматор использует стандартную клавиатуру Windows Phone, которая появляется при выборе элемента TextBox и позволяет вводить в поле любой текст. В нашем случае предпочтительнее использовать вариант клавиатуры, предназначенный только для ввода чисел. Существует несколько конфигураций экранной клавиатуры Windows Phone.

Можно настроить все элементы TextBox, чтобы при их выборе отображалась клавиатура для ввода чисел. Для этого можно изменить соответствующее свойство элементов TextBox во время работы программы, но лучшее указать настройки элемента непосредственно в XAML-файле:

<TextBox Height="72" HorizontalAlignment="Left" Margin="8,19,0,0"

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

TextAlignment="Center">

<TextBox.InputScope>

<InputScope>

<InputScopeName NameValue="Digits" />

</InputScope>

</TextBox.InputScope>

</TextBox>

Это описание указывает Silverlight положение элемента TextBox на экране, размер элемента, его имя и некоторую информацию о выравнивании текста. Каждое из значений, заключенных в блок <TextBox ... /> является атрибутом текстового поля. Атрибуты — это простые элементы, которые не являются структурированными и представляют собой пары "имя—значение".

Чтобы указать элементу TextBox, какая форма текста должна быть введена, в него добавлен вложенный элемент TextBox.InputScope. Этот элемент является частью значения TextBox.

Простая информация о свойствах элемента TextBox представляется в виде атрибутов, в то время как значение InputScope является вложенным элементом, который содержит ряд свойств, которые описывают тип вводимого текста, например, вводимый текст должен содержать цифры и текст, но не знаки пунктуации. Нам достаточно только ввода цифр, для чего нужно добавить элемент:

<InputScopeName NameValue="Digits" />

При использовании этого описания в обоих текстовых полях в программе Сумматор при их вызове будет использоваться клавиатура для ввода числовых значений, которая является более удобной, чем клавиатура для ввода произвольного текста.

Visual Studio поддерживает технологию Intellisense, суть которой заключается в том, что редактор подсказывает, какое значение можно ввести в текущее положение курсора. Это существенно облегчает редактирование текста в программе и помогает предотвратить возможные ошибки при наборе текста.

Использование атрибутов и элементов в XAML. В языке XAML атрибуты и вложенные элементы являются взаимозаменяемыми. Значение свойства элемента может быть считано как из атрибута, так и из одноименного вложенного элемента. Можно указать следующее описание:

<TextBox InputScope="Number" Height="72" HorizontalAlignment="Left"

Margin="144,44,0,0" Name="startHourTextBox" Text="00" VerticalAlignment="Top"

Width="104" TextAlignment="Center" />

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

<TextBox HorizontalAlignment="Left" Margin="8,175,0,0" Name="secondNumberTextBox"

Text="0" VerticalAlignment="Top" Width="460" TextAlignment="Center">

<TextBox.Height>72</TextBox.Height>

</TextBox>

В этом описании высота элемента TextBox указана не как атрибут, а как вложенный элемент. Имя элемента должно содержать название типа элемента, частью которого является это свойство. При этом нельзя указать в качестве имени элемента просто Height, а нужно указать TextBox.Height. Это не ограничение XML, а требование XAML.

С точки зрения XAML не важно, какая из этих форм используется в описании. Для простых пар "имя—значение" можно использовать атрибуты, но для более сложных структур лучше использовать вложенные элементы.

Настройка свойств C#. В коде на языке C# установка значений свойств выглядит так:

// Создание нового элемента InputScope

InputScope digitScope = new InputScope();

// Создание нового элемента InputScopeName

InputScopeName digits = new InputScopeName();

// Установка свойства name в значение Digits

digits.NameValue = InputScopeNameValue.Digits;

// Добавление элемента InputScopeName в элемент InputScope

digitScope.Names.Add(digits);

// Присвоить элементу TextBox созданное свойство

firstNumberTextBox.InputScope = digitScope;

Этот код создает все элементы, представленные в описанном выше коде XAML.