Название: Разработка пользовательского интерфейса на основе технологии Windows Presentation Foundation
Автор: Михаил Абрамян
Издательство: ФГАОУВО "Южный Федеральный Университет"
Жанр: Учебная литература
isbn: 9785927523757
isbn:
При этом вариант отображения текущего времени в окне изменится (рис. 16).
Рис. 16. Окно приложения CLOCK с измененными региональными настройками
Заметим, что настройки для России имеют имя «ru-RU».
2. В отличие от библиотеки Windows Forms, где предусмотрен специальный невизуальный компонент Timer, в библиотеке WPF приходится использовать «обычный» объект типа DispatcherTimer (из пространства имен System.Windows.Threading), явным образом задавая в программе все его свойства и события. Обратите внимание на то, что свойство Interval (время между срабатываниями таймера) имеет тип TimeSpan (этот тип подробно описывается в последнем комментарии к следующему пункту).
3. Особенностью макета данного приложения является использование рамки Border вокруг метки с текстом текущего времени. Для отображения времени мы использовали специальную текстовую метку TextBlock, содержимым которой (в отличие от «обычной» метки Label) может быть только текст. В качестве имени для этого компонента мы выбрали label1 как более кратное и наглядное по сравнению с textBlock1.
Недочет. В течение первой секунды после запуска программы в метке сохраняется исходный текст «00:00:00», так как событие Tick возникает первый раз только через промежуток времени timer1.Interval, равный в нашем случае 1000 миллисекундам.
Исправление. Добавьте вызов обработчика для таймера в конструктор окна MainWindow:
4.2. Реализация возможностей секундомера
В классе MainWindow определите обработчики, уже добавленные в него в результате указания атрибутов Click в xaml-файле:
Кроме того, добавьте в класс MainWindow новое поле
а также дополните обработчик timer1_Tick:
Результат. При установке флажка Timer во включенное состояние программа переходит в режим секундомера, причем секундомер сразу запускается, отображая на экране секунды и десятые доли секунд (рис. 17). Запуск и остановка секундомера осуществляются по нажатию кнопки Start/Stop, сброс секундомера – по нажатию кнопки Reset. Доступны клавиши-ускорители: Alt+T (смена режима «часы/секундомер»), Alt+S (старт/остановка секундомера), Alt+R (сброс секундомера).
Рис. 17. Окно приложения CLOCK в режиме секундомера
Комментарии
1. Свойство IsChecked компонента CheckBox имеет в WPF тип bool?, т. е. может принимать три значения: true, СКАЧАТЬ