Статьи

Подражая запуск приложений Bing

Сегодня я хочу показать, как при старте приложений для Windows Phone можно почувствовать то же, что и недавно выпущенные приложения Bing (финансы, карты, еда и напитки, спорт и новости). С тех пор, как Microsoft начала выпускать версии своих приложений для Windows 8 Bing для Windows Phone, я был большим поклонником их внешнего вида. Главным образом тот факт, что имя приложения размещается в системном трее, а не в основной области приложения, освобождает драгоценное пространство экрана. Отличный пример того, как это страница настроек Bing Food & Drink, показанная ниже. С именем приложения в системном трее становится ясно, что это страница настроек, но при этом визуально известно, в каком приложении вы находитесь.

Страница настроек Bing Food & Drink

Страница настроек Bing Food & Drink

Ключевыми элементами, обеспечивающими ощущение чистоты, являются одноцветный экран-заставка, белый фон и системный лоток, настроенные для соответствия. Как правило, не рекомендуется менять цвета панели задач, чтобы не нарушать ощущение современного пользовательского интерфейса, но в этом случае, поскольку все приложение несет одну и ту же тему через приложение, оно работает хорошо. Давайте кратко рассмотрим приложение Bing Food & drink.

Bing Food & Drink Splash Screen
Экран-заставка приложения Bing Food & Drink
Bing Food & Drink App
Загрузочный экран приложения Bing Food & Drink
Bing Food & Drink App
Приложение Bing Food & Drink полностью загружено
Bing Food & Drink App
Нажатие на систему приложений Bing Food & Drink

Как видите, цветовая тема проходит через приложение с заставкой, системным треем и другими элементами, использующими тот же цвет. Это то, что я имею в виду, когда говорю, что тема пронизывает все приложение. Это важно, поскольку оно создает (или поддерживает) цветовую схему брендинга. Создание заставки нужного цвета не должно создавать каких-либо проблем, за исключением, возможно, знания значений ARGB именованных цветов .NET (если используются именованные цвета), но, к счастью, вы можете навести курсор на названный цвет в Visual Studio и покажет вам значения. Обновление цветов системного трея может быть выполнено как в XAML, так и в C # в файле code-behind. Давайте начнем с рассмотрения того, как это делается в XAML.

<phone:PhoneApplicationPage 
...
    shell:SystemTray.IsVisible="true"
    shell:SystemTray.BackgroundColor="DarkRed"
    shell:SystemTray.ForegroundColor="GhostWhite">
    <shell:SystemTray.ProgressIndicator>
        <shell:ProgressIndicator IsIndeterminate="False" IsVisible="True" Text="Walk Tracker By AtomSocial"
                             x:Name="ProgressIndicator"  />
    </shell:SystemTray.ProgressIndicator>
...

В приведенном выше коде XAML мы добавили SystemTray.BackgroundColor и SystemTray.ForegroundColor к тегу phone: PhoneApplicationPage страниц сразу после SystemTray.IsVisible, который уже был там. Обратите внимание, как я использовал GhostWhite вместо White . Это потому, что по какой-то причине использование белых не работает. Вместо этого цвет становится цветом акцента телефона. Как только системный трей был стилизован, настоящая магия содержится в ProgressIndicator, Добавив индикатор прогресса в системный трей, вы получаете возможность задать текст. Пока IsVisible имеет значение true, этот текст будет отображаться в системном трее. Нажатие на него приведет к смещению текста вверх, когда стандартные значки на панели задач будут скользить вниз. После истечения времени ожидания значки будут перемещаться вверх, а текст — вниз. Это выглядит довольно гладко и точно такое же поведение приложений Bing. Как упомянуто выше, ProgressIndicator также можно установить в файле code-behind страниц, используя C #. Параметры SystemTray.BackgroundColor и SystemTray.ForegroundColor все еще должны быть установлены в XAML, но сам ProgressIndicator создается, как показано ниже.

public MainPage()
{
        InitializeComponent();
        ProgressIndicator = new ProgressIndicator {Text = "Walk Tracker By AtomSocial", IsVisible = true};
        SystemTray.SetProgressIndicator(this, ProgressIndicator);
}

public ProgressIndicator ProgressIndicator { get; set; }

В приведенном выше коде я использовал созданный новый экземпляр ProgressIndicator и назначил его свойству ProgressIndicator . Затем использовал метод SystemTray.SetProgressIndicator для окончательного подключения к системному трею. Я мог бы пропустить это свойство и создать локальную переменную в конструкторе, но сделал это таким образом на случай, если по какой-то причине я захотел изменить текст на лету. Последняя часть этого — ProgressBarнаходится под системным треем. Когда мы создали ProgressIndicator, имело бы смысл просто использовать это, чтобы указать, что что-то происходит. К сожалению, он расположен в самом верху системного лотка и не так хорошо виден, когда лоток окрашен. Похоже, что сдвинуть его вниз — это решение, но я не смог найти способ сделать это. По-видимому, разработчики приложений Bing обнаружили ту же проблему и, по-видимому, использовали ProgressBar под панелью задач для этого. Он использует тот же цвет и имеет отступ в 1 пиксель над ним, чтобы создать очень небольшое разделение системного трея и панели ProgressBar . Следующий XAML показывает ProgressBar, помещенный в Grid на сводной странице.

<Grid x:Name="LayoutRoot" Background="White">
   <ProgressBar Name="ProgressBar" 
                IsIndeterminate="False" 
                IsEnabled="False" 
                Foreground="DarkRed"
                VerticalAlignment="Top" 
                Margin="0,1"/>
<!--Pivot Control-->
<phone:Pivot >
...

Сетка имеет белый фон, так как она имитирует приложения Bing и помогает отображать выбранный цвет приложения на экране. Ему дается имя, поэтому его можно включать и отключать по мере необходимости, хотя в приложении MVVM вы бы связывали это со свойством в вашей модели представления. Поле установлено, а цвет переднего плана установлен на выбранный цвет. Следующие скриншоты из приложения, над которым я сейчас работаю. Все части, описанные в этой статье, реализованы в нем.

Bing Food & Drink Splash Screen
Экран-заставка приложения My Walk Tracker
Приложение My Walk Tracker
Экран загрузки приложения My Walk Tracker
Приложение My Walk Tracker
Приложение My Walk Tracker полностью загружено
Приложение My Walk Tracker
Касание системы приложения My Walk Tracker

Я также пытался имитировать пункты меню, используя элемент управления Telerik RadHubTile. Хотя эта статья не рассматривается, не должно быть слишком сложно подражать остальным ощущениям приложений Bing, хотя я не рекомендую это делать. Вы действительно должны делать свое дело. Все, что я описал, встроено и просто должно быть настроено Макет приложения должен быть уникальным.