Свойства и обработчики событий использованных элементов управления. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Свойства и обработчики событий использованных элементов управления.



Свойства и методы классов для работы с файловой системой.

Объяснить выбор использованной разметки окна.


4. Лабораторная работа №6

Тема: Страничная модель организации приложения с помощью платформы WРF.

Цель: Освоить основные методы разработки страничных приложений и обеспечения страничной навигации.

 

Теоретические сведения

В основе большинства традиционных приложений Windows лежит окно с различными панелями инструментов и меню. Однако в Интернете используется совершенно иная модель навигации, основанная на страницах. Чтобы предоставить разработчикам возможность создавать настольные приложения в стиле веб-приложений, в состав WPF была включена собственная система страничной навигации.

В настоящее время страничная модель чаще всего применятся в простых, облегченных приложениях. Однако она является замечательным вариантом в тех случаях, когда требуется упростить процесс развертывания. Причина в том, что WPF позволяет создавать страничные приложения, способные выполняться внутри браузера Internet Explorer или Firefox. Это означает, что пользователи получают возможность запуска таких приложений, не выполняя их явную установку, а просто указывая в браузерах нужное расположение. Такая модель называется ХВАР.

Чтобы создать страничное приложение в WPF, нужно перестать применять для пользовательских интерфейсов в качестве контейнера высшего уровня класс Window и вместо него переключиться на класс System.Windows.Controls.Page.

Модель для создания страниц в WPF во многом похожа на модель для создания окон. Хотя создавать объекты страниц можно и с помощью одного лишь кода, обычно для каждой страницы создается файл XAML и файл отделенного кода. При компиляции этого приложения компилятор создает производный класс страницы, который объединяет написанный разработчиком код с генерируемыми автоматически связующими элементами (такими как поля, которые ссылаются на каждый именованный элемент на странице).

Страницу можно добавлять в любой проект WPF. Для этого в Visual Studio нужно выбрать в меню Project (Проект) пункт Add Page (Добавить страницу). Хотя страницы и являются самым высокоуровневым компонентом пользовательского интерфейса при проектировании приложения, во время его выполнения контейнером наивысшего уровня они уже не будут. Вместо этого они обслуживаются в другом контейнере. Именно в этом и состоит секрет гибкости, обеспечиваемой WPF в случае страничных приложений, ведь в качестве такого контейнера WPF позволяет использовать любой из нескольких следующих объектов:

- объект NavigationWindow, который представляет собой немного видоизмененную версию класса Window;

- объект Frame, находящийся внутри другого окна;

- объект Frame, находящийся внутри другой страницы;

- объект Frame, обслуживаемый непосредственно в Internet Explorer или Firefox.

Объект NavigationWindow во многом похож на обычное окно, за исключением кнопок навигации "вперед" и "назад", которые отображаются в строке сверху. Поэтому нетрудно догадаться, что класс NavigationWindow унаследован от класса Window и имеет небольшой дополнительный набор связанных с навигацией свойств. Извлечь ссылку на содержащий объект NavigationWindow можно с помощью следующего кода:

NavigationWindow win = (NavigationWindow)Window.GetWindow(this);

В конструкторе страницы данный код работать не будет, потому что на этом этапе страница пока еще не находится внутри своего контейнера, поэтому нужно дождаться хотя бы, когда возникнет событие Page.Loaded.

Подобно Window, класс Page допускает наличие только единственного вложенного элемента. Однако класс Page не является элементом управления содержимым: он на самом деле унаследован непосредственно от класса FrameworkElement. Вдобавок класс Page является более простым и отлаженным, чем класс Window. Он имеет небольшой набор дополнительных свойств, которые позволяют настраивать его внешний вид, взаимодействовать с контейнером только определенным, ограниченным образом и применять навигацию.

Наиболее простой способ позволить пользователю перемещаться с одной страницы на другую — это гиперссылки. В WPF гиперссылки являются не отдельными, а внутристрочными потоковыми элементами, которые обязательно должны размещаться внутри другого поддерживающего их элемента. (Причина такого проектного решения связана с тем, что гиперссылки и текст часто используются вперемешку.)

Например, ниже показано объединение текста и ссылок в элементе TextBlock, который является самым практичным контейнером для гиперссылок:

<TextBlock Margin="5">

Это обычная страница. А это <Hyperlink NavigateUri="page2.xaml">ссылка на другую страницу!</Hyperlink>

</TextBlock>

 

При визуализации гиперссылки отображаются как хорошо знакомый подчеркнутый текст синего цвета.

 

Щелчки на ссылке можно обрабатывать двумя способами: реагировать на событие Click и использовать код для выполнения какой-то задачи либо просто направлять пользователя на другую страницу. Однако существует и более простой подход. Класс Hyperlink также включает свойство NavigateUri, которое можно устанавливать так, чтобы оно указывало на любую другую страницу в приложении. В таком случае при щелчке на гиперссылке пользователи будут попадать на целевую страницу автоматически.

Свойство NavigateUri работает только в том случае, если гиперссылка размещается на странице. При желании использовать гиперссылку в оконном приложении, чтобы позволить пользователям выполнять какую-то задачу, переходить на веб-страницу или открывать новое окно, придется обрабатывать событие RequestNavigate и писать код самостоятельно.

Гиперссылки не являются единственным способом для перехода с одной страницы на другую. NavigationWindow включает две заметные кнопки: "назад" и "вперед" (если только они не скрыты установкой свойства Page.ShowsNavigationUI в false). Щелкая на этих кнопках, пользователи могут перемещаться по навигационной последовательности на одну страницу назад или вперед.

 

Как и в окне браузера, пользователи также могут щелкать на стрелке раскрывающегося списка, отображаемой по краям этих кнопок, и просматривать всю последовательность, а также "перепрыгивать" сразу на несколько страниц назад или вперед:

 

В случае перехода на новую страницу, у которой свойство WindowTitle не установлено, окно сохраняет тот же заголовок, который был на предыдущей странице. Если свойство WindowTitle не устанавливается ни на одной странице, заголовок окна остается пустым.

Элемент NavigationWindow является удобным контейнером, но не единственным вариантом. Страницы также можно размещать и непосредственно внутри других окон или даже внутри других страниц. Это подразумевает возможность создания чрезвычайно гибкой системы, поскольку означает, что одну и ту же страницу можно использовать многократно разными способами в зависимости от типа приложения, которое требуется создать.

Чтобы вставить страницу внутрь окна, нужно воспользоваться классом Frame. Класс Frame представляет собой элемент управления содержимым, который может удерживать любой элемент, но особенно полезен именно в качестве контейнера для страницы. Он включает свойство под названием Source, которое указывает на отображаемую страницу XAML.

Останавливаться на одном фрейме не обязательно. Можно легко создать окно с множеством фреймов и указать им всем на разные страницы.

Лучше всего получать доступ к службе навигации через статический метод NavigationService. GetNavigationService(). Этому методу передается ссылка на страницу, а он возвращает действующий объект NavigationService, который позволяет реализовать навигацию программно:

NavigationService nav;

nav = NavigationService.GetNavigationService(this);

Этот код работает независимо от того, какой контейнер выбран для обслуживания страниц.

Объект NavigationService нельзя использовать ни в конструкторе страницы, ни на этапе срабатывания события Page.Initialized. Больше всего для этого подходит событие Page.Loaded.

В классе NavigationService определен набор методов для работы с навигацией. Наиболее часто используется метод Navigate(), который позволяет переходить на страницу по ее URI:

nav.Navigate(new System.Uri("Page1.xaml", UriKind.RelatlveOrAbsolute));

или за счет создания соответствующего объекта страницы:

Page1 nextPage = new Page1();

nav.Navigate(nextPage);

По возможности лучше всегда применять URI, поскольку это позволяет системе журнализации WPF сохранять данные страницы, не удерживая в памяти все дерево ее объектов. Когда методу Navigate() передается объект страницы, в памяти сохраняется весь объект.

 

Задание к лабораторной работе

 Разработать страничное приложение для отображения действий по обработке архива. В каждой программе, которая реализует соответствующий вариант задачи, обязательными режимами работы являются:

 - создание типизированного файла, содержащего обрабатываемые записи архива;

 - группировка (сортировка) архива по какому-либо признаку;

 - вывод архива на экран;

- дополнение архива новыми записями

- удаление из архива существующих записей.

- корректировка записи Реквизиты, которые изменяются, указываются в условии задачи.

 

Варианты

1. В расписании движения самолетов из аэропорта г.Донецка указаны следующие сведения: номер рейса (4 цифры); аэропорт назначения; расстояние в км; стоимость билета (взрослый и детский); время в часах и минутах (отправление и прибытие). Сформировать таблицу рейсов для заданного аэропорта назначения, а также таблицу сведений о трех рейсах с максимальной продолжительностью полета. Корректируемые реквизиты: стоимость билета, время отправления и прибытия.

-----------------------------------------------------------------------------------------------------------------

2. В каталоге студий звукозаписи имеются следующие данные: название группы, код (две буквы и три цифры), название альбома, год выпуска альбома, название студии. Необходимо сформировать таблицу групп, которые выпустили альбом в заданном году. Определить две группы, которые выпустили наибольшее количество альбомов. При удалении альбома из архива или при изменении его реквизитов для идентификации альбома использовать его код. Корректируемые реквизиты: название и год выпуска альбома.

-----------------------------------------------------------------------------------------------------------------

3. В журнале успеваемости академической группы по программированию имеются следующие данные: фамилия и инициалы студента, номер зачетной книжки в виде 09/27710, где 09 - год поступления в вуз, оценки по пяти лабораторным работам, количество пропусков занятий. Сформировать список студентов, которые не сдали какую-нибудь работу (номер ее задается). Определить трех студентов, которые имеют наибольшее количество пропусков (студентов, которые сдали пять лабораторных работ, не учитывать). Корректируемые реквизиты: оценки по лабораторным работам, количество пропусков занятий.

-----------------------------------------------------------------------------------------------------------------

4. В магазине имеются следующие записи о товарах: наименование, единица измерения, артикул (10 цифр), цена (грн и коп), количество прибывшего, проданного и товара, который остался за текущие сутки. Составить таблицу проданного товара, сгруппировав ее по уменьшению общей стоимости продажи, и таблицу пяти товаров, наибольших по количеству остатка. Корректируемые реквизиты: цена и количества.

-----------------------------------------------------------------------------------------------------------------

5. На заводе радиоэлектроники выпускают звуковоспроизводящую технику и имеются следующие данные: название прибора (например, Рекорд-601м), назначение (магнитофон, проигрыватель и т.п.), код (2 буквы и 3 цифры), год создания, стоимость, гарантийный срок эксплуатации. Необходимо составить список магнитофонов, разработанных в заданном году, а также список приборов, гарантийный срок которых больше трех лет. Корректируемые реквизиты: стоимость, срок гарантии.

-----------------------------------------------------------------------------------------------------------------

6. В каталоге программного обеспечения имеются следующие данные: имя и расширение имени файла, тип файла (текстовый, типизированный, нетипизированный), атрибут файла (каталог, обычный, скрытый, системный), емкость файла, дата и время создания. Составить список текстовых файлов, а также таблицу файлов с емкостью свыше 64 Кбайт, сгруппировав ее по возрастанию даты и времени создания файла. Корректируемые реквизиты: емкость, дата и время создания файла.

-----------------------------------------------------------------------------------------------------------------

7. При проведении итогов референдума в г.Донецке от разных районов была получена следующая информация: название района, код района (буква и две цифры), общее число жителей, которые имеют право голоса, число жителей, которые принимали участие в референдуме, число жителей, голосовавших "Да" и голосовавших "Нет". Необходимо составить список районов, большинством голосов проголосовавших "Да", и список районов, в которых голосовало менее 50% жителей, имеющих право голоса. Корректируемые реквизиты: данные о числе жителей (4 графы).

-----------------------------------------------------------------------------------------------------------------

8. В областной больнице ведется учет больных по следующим данным: номер медицинской карты (две буквы и три цифры), фамилия и инициалы больного, местожительство (город или район области), номер палаты, дата прибытия (год, месяц, день), диагноз. Необходимо вывести список больных, находящихся в заданной палате, а также список больных, находящихся в больнице свыше 14 дней. Текущую дату ввести с клавиатуры как 8-значное число ггггммдд, где гггг – год, мм – месяц, дд - день. Корректируемые реквизиты: номер палаты, диагноз.

-----------------------------------------------------------------------------------------------------------------

9. На станции технического обслуживания автомобилей ведется учет автомобилей, которые прошли капитальный ремонт, по таким данным: марка машины, регистрационный номер (две буквы и пять цифр), пробег (в км) после предшествующего ремонта, год выпуска машины. Необходимо составить список машин, которые имеют пробег более 100 000 км, а также список пяти самых новых автомобилей, которые прошли ремонт. Корректируемые реквизиты: пробег, год выпуска.

-----------------------------------------------------------------------------------------------------------------

10. В библиотеке имеются следующие данные об вузовских учебниках: код (три цифры, точка и две цифры в скобках (например, 681.(07)), название, фамилия и инициалы автора, год издания, цена, нормативное количество экземпляров книги, фактическое количество. Необходимо вывести список книг, изданных в заданном году, и список книг, которые имеются в библиотеке в одном экземпляре. Корректируемые реквизиты: год издания, количество экземпляров. При формировании исходных данных считать, что для каждой книги задан лишь один автор. Название книги можно указывать в сокращенном виде.

-----------------------------------------------------------------------------------------------------------------

11. В районном военкомате ведется учет юношей допризывного и призывного возраста. Имеются следующие данные: фамилия и инициалы, дата рождения, номер личного дела (буква и четыре цифры), адрес (улица, дом, квартира), пригодность к службе ("Да" или "Нет"). Необходимо вывести список юношей, которые призываются на службу в августе текущего года (по достижению 18 лет). Корректируемые реквизиты: номер личного дела, пригодность к службе.

-----------------------------------------------------------------------------------------------------------------

12. В аптеке ведется учет лечебных средств. Имеются следующие данные: название лекарства, серия (7 цифр), цена упаковки, количество упаковок в аптеке, год и месяц выпуска, срок хранения (в годах и месяцах). Необходимо вывести список лекарств, не пригодных к употреблению на заданный год и месяц, и пять самых дорогих лекарств. Корректируемые реквизиты: цена, количество, срок хранения.

-----------------------------------------------------------------------------------------------------------------

13. В заводском цехе ведется журнал расхода материалов по таким данным: наименование материала, шифр (6 цифр), единица измерения (шт., кг и т.п.), расход в сутки, количество, имеющееся в цехе. Необходимо вывести список материалов, которые закончатся через заданное количество дней, а также список пяти наименее расходуемых материалов. Корректируемые реквизиты: расход, количество.

-----------------------------------------------------------------------------------------------------------------

14. За материально ответственным лицом кафедры числятся материальные ценности, записанные в журнале: наименование предмета, инвентарный номер (4 цифры), номер лаборатории, год и месяц приобретения, стоимость (грн.), срок службы (годы). Необходимо вывести список предметов, которые подлежат списанию в заданный год, а также список пяти самых долгосрочных предметов. Если наименование предмета состоит из двух слов, то объединять эти слова с помощью знака подчеркивания. Корректируемые реквизиты: количество, стоимость, срок службы.

-----------------------------------------------------------------------------------------------------------------

15. В заводском цехе ведется учет электроэнергии, которая расходуется машинами и приборами. Имеются следующие данные: название машины или прибора, инвентарный номер (буква и четыре цифры), потребляемая мощность, год выпуска, стоимость (грн.). Вывести список десяти наиболее энергоемких приборов, а также суммарную мощность, потребляемую цехом при всех включенных приборах. Принять во внимание, что название машины (прибора) может состоять из одного или двух слов. В последнем случае эти слова объединяются с помощью знака подчеркивания. Корректируемые реквизиты: мощность, стоимость.

-----------------------------------------------------------------------------------------------------------------

16. На АТС ведется учет междугородных разговоров абонентов по таким данным: регистрационный код (10 цифр), фамилия и инициалы абонента, домашний адрес (улица, дом, квартира), номер телефона, количество и сумма междугородных телефонных разговоров за месяц (в грн и коп), отметка об оплате услуг АТС («Да», «Нет»). Необходимо вывести список 10-ти абонентов, которые наиболее широко используют междугородную сеть (по суммарной стоимости разговоров), а также в алфавитном порядке список абонентов, не оплативших услуги АТС. Корректируемые реквизиты: количество, сумма.

-----------------------------------------------------------------------------------------------------------------

17. В заводском цехе ведется учет рабочего времени. В журнал заносятся такие данные: фамилия и инициалы рабочего, должность, табельный номер (5 цифр), общее количество рабочих часов в неделю, количество отработанных часов, количество часов, пропущенных по болезни, количество часов прогулов. Необходимо вывести список 10-ти рабочих с наибольшим количеством прогулов, а также посчитать процент использования pабочего времени в среднем по цеху. Корректируемые реквизиты: количество отработанных и пропущенных часов.

-----------------------------------------------------------------------------------------------------------------

18. Диспетчер автовокзала отмечает автобусы, прибывшие на вокзал и ушедшие с вокзала. В журнал заносятся следующие данные: номер рейса, номер автобуса (две буквы и пять цифр), фамилия и инициалы водителя, время отправления (часы, минуты), время прибытия (часы, минуты). Составить список автобусов, которые находятся в дороге в заданное время. Это время ввести с клавиатуры как 4-значное число hhmm, где hh – часы, mm – минуты. Определить также три автобуса с наибольшими промежутками времени между отправлением и прибытием (часы и минуты). Корректируемые реквизиты: время отправления и прибытия.

-----------------------------------------------------------------------------------------------------------------

19. На кафедре для преподавателей имеется расписание занятий на каждый день недели. Оно составлено по таким данным: фамилия и инициалы преподавателя, код преподавателя в журнале учета (3 цифры), день недели, номера аудиторий на 1-й, 2-й, 3-й, 4-й и 5-ой парах соответственно. Необходимо вывести список преподавателей, работающих в указанный день в заданной аудитории, а также общее число часов, которые отрабатываются преподавателями кафедры в этот день. Корректируемые реквизиты: номера аудиторий по дням недели.

----------------------------------------------------------------------------------------------------------------

20. На метеостанции ведется учет погодных условий в течение месяца. В журнал ежедневно заносятся следующие данные: число, температура воздуха днем и ночью, давление воздуха, процент содержания кислорода, радиоактивный фон, продолжительность светового дня. Необходимо вывести список погодных условий тех дней, в которые радиоактивный фон превышает заданную величину, а также определить среднюю дневную и ночную температуры за месяц. Корректируемые реквизиты: все, кроме числа месяца.

 

Вопросы к защите лабораторной работы №7

1. Особенности страничной модели приложения.

2. Элемент управления Page. Его свойства и методы.

3. Способы организации страничной навигации.

4. Элемент NavigationWindow. Его назначение и методы.

5. Класс Frame. Его использование в страничной модели приложения

6.  Гиперссылки.


Список рекомендуемой литературы

Базовая

 

1. Петцольд Ч., Программирование в тональности С#, - Русская редакция, 2004.

2. Петцольд Ч., Microsoft Windows Presentation Foundation, - Русская редакция, 2008.

3. Зиборов В.В., Visual C# 2012 на примерах. – Спб: БХВ – Петербург, 2013, 480с.

4. Финогенов К.Г. Win32. Основы программирования. – М.: ДИАЛОГ-МИФИ, 2006.-416 с.

5. Шилдт Г. Полный справочник по С#. – Перев. С англ. – М.: Издательский дом «Вильямс», 2004. – 752с.

 

 

Дополнительная

1. Культин Н., Visual C# в примерах и задачах. – Спб: БХВ – Петербург, 2009, 320с.: ил.+CD-ROM

2. Рихтер Дж.Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64- разрядной версии Windows. – 4-е узд. – М.: Издательско-торговый дом «Русская Редакция», 2001. -752 с.

3. Фролов А. В., Фролов Г. В. Язык С#. Самоучитель. - М.: ДИАЛОГ-МИФИ, 2003. - 560с.

 

Информационные ресурсы

 

1. msdn. Microsoft.com\ru-ru\library\bb297402

2. msdn. Microsoft.com\ru-ru\library \ ms747393.aspx

 

 



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 66; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.90.131 (0.052 с.)