Итак, надо создать дополнительную форму AboutForm
и задать значения всех необходимых свойств окна. На форме надо расположить таймер, интервал срабатывания которого будет равен 3 с. Код, реализующий подобное поведение программы, приведен в листинге 7.6.
Листинг 7.6
protected override void OnPaint(PaintEventArgs e) {
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
Graphics g = e.Graphics;
g.DrawString(".NET Compact Framework", this.Font,
new SolidBrush(Color.Blue), Screen.PrimaryScreen.Bounds, sf);
}
private void timer1_Tick(object sender, EventArgs e) {
this.Close();
}
В событии OnPaint
формы AboutForm
нужно установить свойства для вывода текста. При желании можно добавить отображение логотипа. Через заданный интервал таймер просто закроет это окно. Код для основной формы MainForm
приведен в листинге 7.7.
Листинг 7.7
public MainForm() {
InitializeComponent();
#if DEBUG
MinimizeBox = false;
#else
MinimizeBox = true;
#endif
AboutForm about = new AboutForm();
about.ShowDialog();
}
private void mnuAbout_Click(object sender, EventArgs e) {
AboutForm about = new AboutForm();
about.ShowDialog();
}
Теперь при запуске приложения на экране сначала будет отображаться заставка. После истечения трех секунд она исчезнет, и пользователь увидит основную форму.
Устройства с операционной системой Pocket PC 2003 Second Edition и старше обрели долгожданную возможность поворачивать содержимое экрана. Раньше пользователям приходилось устанавливать дополнительные программы для достижения такого эффекта. А разработчики получили возможность управлять поворотами экрана управляемыми методами только в .NET Compact Framework 2.0. Но зато теперь это можно сделать буквально одной строкой кода. Тем, кто по ряду причин должен по-прежнему использовать .NET Compact Framework 1.0, придется задействовать сложный код с вызовами функций API, который приведен в листинге 7.8. Сначала надо установить ссылку на пространство имен Microsoft.WindowsCE.Forms
. После этого следует просто использовать нужные свойства класса SystemSettings
.
Листинг 7.8.
using Microsoft.WindowsCE.Forms;
// запоминаем настройки экрана
ScreenOrientation initialOrientation = SystemSettings.ScreenOrientation;
private void butRot90_Click(object sender, EventArgs e) {
// поворачиваем экран на 90 градусов
SystemSettings.ScreenOrientation = ScreenOrientation.Angle90;
}
private void butRestore_Click(object sender, EventArgs e) {
// восстанавливаем старую ориентацию
if (SystemSettings.ScreenOrientation != initialOrientation) {
try {
SystemSettings.ScreenOrientation = initialOrientation;
} catch (Exception) {
// Невозможно вернуться к старым настройкам
MessageBox.Show("He могу восстановить " +
"предыдущую ориентацию экрана.");
}
}
}
Рекомендации по дизайну форм
Компания Microsoft выработала определенные рекомендации по дизайну форм, которых следует придерживаться. Эти рекомендации можно найти в документации MSDN. Так, например, в одной из статей указывается, что в некоторых случаях пользователь предпочитает пользоваться пальцами вместо стилуса. Поэтому, если форма содержит кнопки, то они должны быть достаточно большими, чтобы было удобно нажимать на них.
Рекомендуемые размеры кнопок для Pocket PC составляют 21×21 пикселов, если пользователь применяет стилус, и 38×38 пикселов, если он предпочитает нажимать кнопки пальцами. Также надо предусмотреть свободное пространство между элементами, чтобы избежать ошибочных нажатий. Если маленькие кнопки для копирования и удаления файлов находятся рядом, то пользователи не раз вспомнят вас недобрым словом при неаккуратном нажатии на кнопки.
В то же время следует группировать часто используемые элементы, чтобы пользователю не пришлось часто перемещать стилус. Это тоже достаточно утомительно. Понятно, что к играм эти рекомендации не относятся. В них действуют свои законы.
До сих пор мы с вами изучали примеры, которые могли бы стать частью настоящих программ. Но сейчас пришло время написать несколько приложений, которые уже можно использовать в реальной жизни. Так получилось, что первые две программы были написаны для смартфонов, о которых речь пойдет в дальнейших главах. Но при помощи этих примеров можно получить представление о программировании для этого класса устройств. К тому же, на их основе можно написать аналогичный пример для карманных компьютеров, что поможет увидеть сходство в написании приложений для разных типов устройств.
Читать дальше