Кнопки

175

Надстройка Silverlight распознает три типа простых кнопок: Button (Кнопка), CheckBox (Флажок) и RadioButton (Переключатель). Все эти элементы управления наследуют классы ButtonBase и ContentControl.

Класс ButtonBase содержит всего несколько самых необходимых членов. В нем определены событие Click и свойства IsFocused, IsMouseOver и IsPressed, имеющие статус "только чтение".

Кроме того, класс ButtonBase содержит свойство ClickMode, определяющее, когда генерируется событие Click в ответ на действие мыши. По умолчанию оно имеет значение ClickMode.Release, при котором событие Click генерируется в момент отпускания кнопки мыши. При значении ClickMode.Press событие Click генерируется в момент первого нажатия кнопки мыши. Значение ClickMode.Hover задает генерацию события Click, когда пользователь наведет указатель на кнопку и на некоторое время задержит его.

Все эти кнопки, в том числе и кнопки примитивов RepeatButton и ToggleButton являются аналогами идентичных элементов управления WPF, поэтому здесь мы их не будем рассматривать. (см. "WPF - кнопки")

Кнопка HyperlinkButton

Кнопка Button довольно простая: пользователь щелкает на ней, и она генерирует событие Click, обрабатываемое в коде. В отличие от нее, кнопка HyperlinkButton дает команду браузеру перейти к другой веб-странице и завершает текущее приложение Silverlight.

Элемент HyperlinkButton не отображает фон, как обычная кнопка. В отличие от нее, он просто выводит значение свойства Content. По умолчанию текст выводится синего цвета, не подчеркнутый. Задать подчеркивание можно с помощью свойства TextDecorations. При наведении указателя на кнопку HyperlinkButton он принимает вид руки, свидетельствуя о том, что указатель наведен на гиперссылку. По мере необходимости этот эффект можно переопределить с помощью свойства Cursor. Существуют три способа использования кнопки HyperlinkButton:

Входная HTML-страница может предотвратить навигацию к внешнему веб-сайту. Для этого нужно добавить параметр enableNavigation в раздел <object> входной страницы и присвоить ему значение false. При этом останется возможность использовать HyperlinkButton для внутренней навигации по фреймам или для запуска обработчика события Click.

Ниже показан пример использования кнопки HyperlinkButton:

<StackPanel Margin="10,5">
        <TextBlock>Программирование на языке C#, платформа .NET</TextBlock>
        <HyperlinkButton HorizontalAlignment="Right" NavigateUri="http://professorweb.ru" 
                         Content="www.professorweb.ru" Margin="10" />
</StackPanel>
HyperlinkButton
Пройди тесты
Лучший чат для C# программистов