Главная » Разработка для Windows Phone 7 » Иерархия класса Button

0

Это полная иерархия классов ветки класса ButtonBase (Базовая кнопка):

Control (абстрактный) ContentControl

ButtonBase (абстрактный) Button

HyperlinkButton RepeatButton (запечатанный)

ToggleButton

CheckBox RadioButton

Именно ButtonBase описывает событие Click и свойство ClickMode.

В проекте ButtonCornucopia (Многообразие кнопок) создаются экземпляры всех этих кнопок с минимально необходимым набором свойств:

Проект Silverlight: ButtonCornucopia Файл: MainPage.xaml

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <StackPanel>

<Button Content="Button" HorizontalAlignment="Center" />

<HyperlinkButton Content="HyperlinkButton" HorizontalAlignment="Center" /> <RepeatButton Content="RepeatButton" HorizontalAlignment="Center" /> <ToggleButton Content="ToggleButton" HorizontalAlignment="Center" /> <CheckBox Content="CheckBox" HorizontalAlignment="Center" />

<Border BorderBrush="White" BorderThickness="1" HorizontalAlignment="Center"> <StackPanel>

<RadioButton Content="RadioButton1" /> <RadioButton Content="RadioButton2" /> <RadioButton Content="RadioButton3" /> </StackPanel> </Border> </StackPanel> </Grid>

HyperlinkButton (Гиперссылка) используется в Silverlight для перехода на определенную страницу и включает свойство NavigateUri (URI перехода) для этой цели. RepeatButton при

Кнопки и расстояния между ними могут казаться очень большими, но не забывайте, что они являются мишенями для касания и должны обеспечивать достаточное пространство для этого:

удерживании кнопки формирует множество событий Click. Его основное применение – в ScrollBar и Slider, и его редко используют где-либо еще.

Между ToggleButton (Выключатель) и CheckBox нет функциональной разницы. Они отличаются лишь внешне, и их визуальное представление можно изменять с помощью шаблона (как будет продемонстрировано в главе 16). В наборе инструментов Silverlight for Windows Phone Toolkit появляется производный от ToggleButton под именем ToggleSwitchButton (Тумблер), который можно увидеть в разделе Settings телефона, работающего под управлением Windows Phone.

Выбор одного из RadioButton обусловливает снятие выбора со всех остальных RadioButton. Для объектов RadioButton не предусмотрено никакого специального контейнера. Просто поместите два или более RadioButton на панель (практически всегда для этого используется StackPanel) и они будут синхронизироваться самостоятельно. RadioButton описывает свойство GroupName (Имя группы), позволяющее различать группы переключателей, которые могут располагаться на одной панели.

Обычно ToggleButton и CheckBox являются визуальной реализацией величины типа Boolean. Каждый последующий щелчок обеспечивает их включение или выключение. Но в ToggleButton описано свойство IsThreeState (Три состояния), которое позволяет включать третье «неопределенное» состояние. Как правило, оно используется только для CheckBox; в ToggleButton даже не предусмотрено визуального представления для такого неопределенного состояния.

Следовательно, свойство IsChecked, определенное ToggleButton, не типа bool. Оно типа Nullable<bool> (опять bool?) с тремя допустимыми значениями: true, false и null. Чтобы задать свойству IsChecked значение null в XAML, можно воспользоваться специальным расширением разметки:

IsChecked="{x:Null}"

Для использования в роли обычного переключателя IsChecked, как правило, приводят к типу bool.

ToggleButton определяет три события: Checked (Установлен) формируется, когда флажок установлен, Unchecked (Снят) – когда флажок снят, и Indeterminate (Не определен) – когда объект переходит в третье состояние. В большинстве случаев приложению, использующему ToggleButton или CheckBox, необходимо обрабатывать и события Checked, и события Unchecked, но это можно делать с помощью одного обработчика событий.

Источник: Чарльз Петзольд, Программируем Windows Phone 7, Microsoft Press, © 2011.

По теме:

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