30 приложений для Windows Phone: Обратный отчет до полуночи

Наше первое приложение для Windows Phone 7 будет очень простым. На экране будет идти обратный отчет до полуночи в стиле будильника.

Приготовления

Для приложения нам понадобится шрифт Quartz Italic, который можно скачать с сайта Font Zone. Данный шрифт очень похож на символы, используемые в электронных будильниках. Запустите Visual Studio и создайте новый проект "Midnight". Добавьте скачанный шрифт в проект (Add Existing Item и убедитесь, что Build Action установлен в Content). Мы уже разбирали работу со шрифтами.

Интерфейс программы

Интерфейс программы очень прост. Добавьте элемент TextBlock под именем "Countdown" на страницу и установите следующие свойства:

  • Width и Height: Auto (выбрать Advanced Properties, далее Reset Value).
  • Margin: Clear the ones the designer set
  • Horizontal и Vertical Alignment: Center
  • Foreground: будем использовать текущую тему пользователя. Поэтому под Advanced Properties выберем Apply Resource и установим значение Phone Accent Brush
  • Font Size: 64

Xaml-код для ContentGrid будет выглядеть следующим образом:

<Grid x:Name="ContentGrid" Grid.Row="1">
 <TextBlock x:Name="Countdown" VerticalAlignment="Center" FontFamily="quartzitalic.ttf#Quartz" Foreground="{StaticResource PhoneAccentBrush}" FontSize="64" HorizontalAlignment="Center" />
</Grid>

Создание таймера

Нам нужен таймер, который будет тикать каждую секунду. И, соответственно, мы будем каждую секунду обновлять содержимое элемента TextBlock. В конструкторе класса Page мы задаем событие Loaded, которое происходит при создании страницы, а также создаем метод OnTimerTick, в котором вычисляем оставшееся время до полуночи и выводим результат в TextBlock. Полный код выглядит следующим образом:

using System.Windows.Threading;

public partial class MainPage
{
    private DispatcherTimer timer;
 
    public MainPage()
    {
        InitializeComponent();
     
        Loaded += OnLoaded;
    }
     
    private void OnLoaded(object sender, RoutedEventArgs e)
    {
        timer = new DispatcherTimer
        {
             Interval = TimeSpan.FromSeconds(1)
        };
     
        timer.Tick += OnTick;
     
        timer.Start();
    }
     
    private void OnTick(object sender, EventArgs e)
    {
        var midnight = DateTime.Today.AddHours(24);
        var timeLeft = midnight - DateTime.Now;
     
        Countdown.Text = String.Format("{0:D2}:{1:D2}:{2:D2}", timeLeft.Hours, timeLeft.Minutes, timeLeft.Seconds);
    }
}

Запустите проект и посмотрите, сколько времени осталось до полуночи. Возможно, результат вас удивит и не совпадет с вашими ожиданиями. Не впадайте в панику. На вашем телефоне установлен по умолчанию другой часовой пояс. Войдите в настройки (Settings | Date & Time) и установите свой часовой пояс.

До полуночи

Дополнительные материалы

Пример для Windows Mobile 6.5 - Обратный отсчёт до полуночи

Реклама