Статьи

Windows Phone Mango Panorama: Работа с минимизированной ошибкой AppBar

Фон

Перед обновлением Mango разработчики Windows Phone не рекомендовали использовать панель приложений с элементом управления Panorama. Это было несколько изменено с Mango, который включает новый свернутый режим для панели приложения . Доступ к этому режиму можно получить с помощью свойства Mode на панели приложения.

образ

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" Mode="Minimized">

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

Эта проблема

Проблема проявляется, если в вашем приложении выполняются следующие условия:

  • У вас есть страница с панорамой
  • У вас есть панель приложения
  • Вы переключаетесь между двумя различными режимами панели приложения (свернуто / по умолчанию)
  • Пользователь может перейти на страницу панорамы, чтобы панель приложения была в режиме по умолчанию.

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

Давайте рассмотрим несколько примеров.

Пример 1: приложение запускается с панели приложения в свернутом режиме

Если при запуске приложения панель приложения находится в свернутом режиме, все работает правильно:

Панель приложений свернута:

 

образ

Панель приложения в режиме по умолчанию:

образ

Пример 2: приложение запускается с панели приложения в режиме по умолчанию

Если панель приложения находится в режиме по умолчанию при запуске приложения, фон теряет несколько пикселей, когда панель приложения свернута:

Панель приложения в режиме по умолчанию:

образ

Панель приложений свернута:

образ

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

Временное решение

До тех пор, пока ошибка не будет устранена, возможно, самым простым решением будет установить непрозрачность панели приложения меньше 1.

<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" Mode="Default" Opacity="0.99">
    <shell:ApplicationBarIconButton IconUri="appbar.questionmark.rest.png" Text="help"/>
</shell:ApplicationBar>

Пример 3: приложение запускается с панелью приложения в режиме по умолчанию, а непрозрачность панели приложения составляет менее 1

Если при запуске приложения панель приложения находится в режиме по умолчанию, а ее непрозрачность меньше 1, все работает правильно:

Панель приложения в режиме по умолчанию:

образ

Панель приложений свернута:

образ

Источник:  http://mikaelkoskinen.net/post/windows-phone-panorama-appbar-minimized-bug.aspx