Главная » Разработка для Windows Phone 7 » Простые часы (очень простые часы)

0

До сих пор в данной главе были рассмотрены два события Silverlight, SizeChanged и OrientationChanged, но использовались они по-разному. Событие SizeChanged я ассоциировал с обработчиком события в XAML, а для события OrientationChanged я переопределил эквивалентный метод OnOrientationChanged.

Конечно, обработчики этих событий могут быть определены полностью в коде. Одним очень удобным для приложений на Silverlight классом является DispatcherTimer (Таймер-диспетчер), который периодически обращается к приложению посредством события Tick (Тик) и побуждает его выполнить какую-то работу. Например, таймер используется для приложения, моделирующего часы.

Сетка для содержимого проекта SilverlightSimpleClock включает только расположенный по центру TextBlock:

Проект Silverlight: SilverlightSimpleClock Файл: MainPage.xaml (фрагмент)

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <TextBlock Name="txtblk"

HorizontalAlignment="Center" VerticalAlignment="Center" />

</Grid>

Рассмотрим файл выделенного кода полностью. Обратите внимание на директиву using для пространства имен System.Windows.Threading, которое не используется по умолчанию. Это пространство имен, в котором находится DispatcherTimer:

Проект Silverlight: SilverlightSimpleClock Файл: MainPage.xaml.cs

using System;

using System.Windows.Threading; using Microsoft.Phone.Controls;

namespace SilverlightSimpleClock {

public partial class MainPage : PhoneApplicationPage {

public MainPage() {

InitializeComponent();

DispatcherTimer tmr = new DispatcherTimer(); tmr.Interval = TimeSpan.FromSeconds(1); tmr.Tick += OnTimerTick; tmr.Start();

}

void OnTimerTick(object sender, EventArgs args) {

txtblk.Text = DateTime.Now.ToString();

}

}

}

Конструктор инициализирует DispatcherTimer, указывая ему вызывать OnTimerTick (По тику таймера) раз в секунду. Обработчик этого события просто преобразует текущее время в строку, чтобы присвоить ее как значение TextBlock.

Могут возникнуть некоторые сложности с использованием SuppressDraw во время первого запуска программы. Но применение этого метода является одной из основных методик в XNA для сокращения энергопотребления приложений.

Источник: Чарльз Петзольд, Программируем Windows Phone 7, Microsoft Press, © 2011.

По теме:

  • Комментарии