Для создания тестового примера нужно переместить на форму элементы Notification
и Button
. При нажатии на кнопку необходимо отобразить соответствующее сообщение. Это реализуется при помощи кода, приведенного в листинге 3.30.
Листинг 3.30
private void button1_Click(object sender, EventArgs e) {
notification1.Text = "Позвони родителям!";
notification1.Caption = "Демонстрация примера";
notification1.Critical = true;
// Уведомление висит на экране 10 секунд
notification1.InitialDuration = 10;
notification1.Visible = true;
}
На рис. 3.21 показано сообщение, которое будет отображаться на экране КПК в течение 10 секунд.
Рис. 3.21. Вывод сообщения с помощью элемента Notification
ПРИМЕЧАНИЕ
Элемент Notification применяется только в приложениях для карманных компьютеров. Смартфоны его не поддерживают.
На карманных компьютерах кроме клавиш навигации присутствуют также дополнительные кнопки, при помощи которых активируются часто запускаемые приложения. Как правило, в состав программного обеспечения КПК входит утилита, с помощью которой можно назначить каждой из этих кнопок определенные команды. Но можно представить ситуацию, когда для создаваемой игры нужно, чтобы управление осуществлялось с помощью этих кнопок. Тогда необходимо переопределить на время поведение кнопок в вашем приложении. И сделать это можно с помощью элемента HardwareButton
, который появился в .NET Compact Framework 2.0.
Следует рассмотреть пример использования этого нового элемента. Прежде всего нужно создать новый проект и поместить на панели Component tray
два элемента HardwareButton
с именами hrdLeftRotate
и hrdRightRotate
. Для каждой переопределяемой кнопки необходимо создать свой экземпляр элемента HardwareButton
. В рассматриваемом примере будут переопределяться вторая и третья кнопки.
Также на форме надо разместить графическое поле PictureBox
. В него надо загрузить любое изображение и растянуть картинку таким образом, чтобы она заняла верхнюю половину экрана. Изображение надо пристыковать к верхней части формы. Для этого свойству Dock
присваивается значение Top
. Также на форме надо разместить надпись Label
, при помощи которой будут отображаться подсказки. Надпись следует пристыковать к нижней части формы. Для этого свойству Dock
присваивается значение Bottom
. У обоих добавленных элементов HardwareButton
нужно отыскать свойство AssociatedControl
и задать значение Form1
. Также надо изменить значения свойств HardwareKey
. Для первого элемента применяется значение ApplicationKey2
, что соответствует второй кнопке. Для второго элемента задается значение ApplicationKey3
, что соответствует третьей кнопке под экраном. Теперь, когда все необходимые свойства установлены, нужно написать код для события Form1_KeyUp
. Код приведен в листинге 3.31.
Листинг 3.31
private void Form1_Load(object sender, EventArgs e) {
label1.Text = "Нажмите вторую кнопку для поворота экрана на 90 градусов";
}
private void Form1_KeyUp(object sender, KeyEventArgs e) {
switch ((HardwareKeys)e.KeyCode) {
case HardwareKeys.ApplicationKey2:
if (SystemSettings.ScreenOrientation == ScreenOrientation.Angle0) {
SystemSettings.ScreenOrientation = ScreenOrientation.Angle90;
label1.Text =
"Нажмите третью кнопку для поворота экрана в первоначальную позицию";
}
break;
case HardwareKeys.ApplicationKey:
if (SystemSettings.ScreenOrientation == ScreenOrientation.Angle90) {
SystemSettings.ScreenOrientation = ScreenOrientation.Angle();
label1.Text = "Нажмите вторую кнопку для поворота экрана на 90 градусов";
}
break;
default:
break;
}
}
Запустите программу и попытайтесь нажимать по очереди на вторую и третью кнопки под экраном карманного компьютера. Результат показан на рис. 3.22.
Рис. 3.22. Поворот экрана при помощи аппаратных кнопок
ПРИМЕЧАНИЕ
В документации говорится, что различные модели КПК имеют различное число кнопок, причем не все из них поддерживаются на системном уровне. Например, Windows Mobile 2003 для Pocket PC поддерживает четыре кнопки, a Windows Mobile 5.0 для Pocket PC поддерживает пять кнопок. При этом класс HardwareButton не поддерживается смартфонами и другими устройствами на базе Windows СЕ, которые не является устройствами Pocket PC.
Читать дальше