Кнопки
175Silverlight 5 --- Кнопки
Надстройка 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:
Перенаправление браузера на внешний веб-сайт. Для этого присвойте свойству NavigateUri абсолютный URL-адрес, указывающий на целевую веб-страницу. Можете также присвоить свойству TargetName имя фрейма, в котором нужно открыть страницу. Учитывайте, что после того, как вы покинете текущую страницу, приложение Silverlight завершит работу. По этой причине данный способ использования кнопки HyperlinkButton применяется редко.
Передача фрейма другой странице Silverlight. Убедитесь в том, что на странице есть элемент управления Frame, и присвойте свойству NavigateUri относительный URI-адрес, указывающий на другой файл XAML в текущем проекте.
Выполнение какой-либо операции в коде. Не устанавливайте свойство NavigateUri. Вместо этого создайте обработчик события Click, выполняющий нужную операцию.
Входная 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>