Написание простейших приложений для КПК - Просмотр изображений. Часть 1

Этой статьей я планирую открыть небольшой цикл, посвященный вопросам написания приложений для "братьев наших меньших" - портативных компьтеров (КПК) и смартфонов под управлением Windows Mobile 5.0
Статьи планируются небольшими по формату, и в каждой из них будет рассмотрен какой либо один из компонентов.
Для начала определимся с инструментом. Если не оговорено иначе, для программирования мы будем использовать C#.NET Compact FrameWork 2.0. В качестве среды разработки - Visual Studio 2005.
Запускаем студию и создаем новый проект - для типа проекта выбираем Other Languages - Visual C# - Smat Device - и далее любое целевое устройство. Я пока остановлюсь на Windows CE 5.0. Шаблон для него выбираем - Device Application - название, на ваш вкус - я назвал LoadFoto.
После нажатия кнопки Ок ваш проект должен быть загружен в среду разработки и откроется его главная форма.
Здесь небольшое отступление о стилях наименования. Вы вправе выбратьи придерживаться любого стиля наименования, который вам удобен или импонирует. Единственно что я бы порекомендовал - придерживаться его всегда. В данном проекте, да и всегда я следую обычно следующим соглашениям:
- для локальных переменных используются строчные буквы. Название английское существительное.
- для глобальных переменных используются ПРОПИСНЫЕ БУКВЫ обязательно. В качестве названия - английское существительное.
- переменные члены классов - префикс типа пременной - название английское существительное с большой буквы.
- компонент - две первые строчные буквы - тип, с большой буквы английское существительное.
Вы в праве следовать этому, или использовать свое. Ну а я на основании этого в поле Name формы указываю fmMain. Дак же желательно заголовок формы привести в порядок - как минимум там стоит отображать версиию программы - ну и человеческое название не помешает.
Кроме того, необходимо установить свойство формы MinimizeBox в состояние false, тогда на устройстве вы всегда сможете закрыть свое приложение кликнув по кнопке Ок в заголовке. Естественно если вам это нужно.
Вот что касается мингимальных настроек. Кроме этого, я рекомендую при загрузке приложения отображать в заголовке текущую версию - но об этом в следующих статьях.
А пока разместим на форме PictureBox, назовем его pbImage. Так же, нам понадобится чтото, при помощи чего мы будем выбирать файлы, которые мы будем просматривать. Для этих целей используется компонент OpenFileDialog. Переносим его на форму и называем odImage.
Специфика мобильных устройств такова, что чем меньше действий пользователю приходится выполнять для получения конечного результата - тем лучше (в разумных пределах конечно). Поэтому такие элементы пользовательского интерфейса как кнопки, меню, списки нужно использовать по возможности только тогда, когда это крайне нужно - если у нас есть элемент, который показывает картинку, лучше всего, чтобы выбор этой самой картинки происходил при клике по данному элементу. Исходя из этого наша программа выглядит следующим образом:
- пользователь загружает программу
- кликает по полю показа (pbImage)
- Открывается диалог вбора файла
- пользователь выбирает файл (либо отказывается)
- картинка загружается
Для того, что бы все это организовать, нам нужно выполнить следующие шаги.
Во первых, в компоненте odImage необходимо указать фильтр расширений файлов. Делается это в свойстве Filter - там необходимо указать следующую строку - Графические файлы (*.jpg)|*.jpg
Во вторых - необходимо создать метод Click для компонента pbImage. Для этого достаточно дважды по нему кликнуть мышкой. И в открывшемся редакторе пишем:
private void pbImage_Click(object sender, EventArgs e)
{
if (odImage.ShowDialog() == DialogResult.OK) {
}
}
т.е. мы вызываем метод ShowDialog и проверяем его результат. Если пользователь что либо выбрал - то мы должны загрузить картинку на форму.
Загрузка изображения состоит из трех этапов - вначале мы должны создать указатель на объект Bitmap используя полученное имя файла, установить параметры отображения, и после отобразить картинку на форме. Полный код например выглядит так:
private void pbImage_Click(object sender, EventArgs e)
{
if (odImage.ShowDialog() == DialogResult.OK) {
Bitmap tmp_bitmap = new Bitmap(odImage.FileName);
pbImage.SizeMode = PictureBoxSizeMode.StretchImage;
pbImage.Image = (Image)tmp_bitmap;
}
}
Теперь можете запустить код на выполнение и проверить на эмуляторе, как он работает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
