Панель приложений работает по-другому в Windows Phone 7, чем CTP - PullRequest
1 голос
/ 27 июля 2010

В бета-версии инструментов WP7 я заметил несколько проблем:

  • ApplicationBar больше не заставляет страницу изменять размер содержимого с помощью обходного пути CTP
  • Использование ApplicationBar из App.xaml и импорт в качестве статического ресурса не работает должным образом

В CTP-версии инструментов WP7 при использовании панели приложения и навигации от страницы к странице панель приложения остается поверх содержимого страницы, а не изменяет размер содержимого, чтобы быть поверх панели приложения. Обходным путем было установить для свойства IsVisible значение false в конструкторе и установить значение true на событие загрузки страницы. Это больше не работает, и панель приложений остается в верхней части загруженной страницы, если она полностью не отключена. У меня есть appbar xaml в app.xaml, и каждая страница использует его в качестве статического ресурса.

Также событие click больше не вызывается для кнопок приложения, я использую панель приложения в качестве ресурса в моем App.xaml и добавлена ​​как {StaticResource} в xaml моей страницы. Буду признателен за любую помощь, так как это единственный способ навигации по моему приложению, кроме прокрутки моей собственной страницы навигации.

public CalculatorView()
{
    InitializeComponent();

    ApplicationBar.IsVisible = false;

    SupportedOrientations = SupportedPageOrientation.Portrait;

    Application.Current.RootVisual = this;
}

private void PhoneApplicationPageLoaded(object sender, RoutedEventArgs e)
{
    ApplicationBar.IsVisible = true;
}

AppBar XAML:

<Shell:ApplicationBar x:Key="GlobalApplicationBar" IsVisible="True" IsMenuEnabled="True">
    <Shell:ApplicationBar.Buttons>
        <Shell:ApplicationBarIconButton x:Name="CalculaterAppIconButton" Click="CalculaterMenuItemClick" IconUri="/Images/Icons/32/Back.png" Text="Main" />
        <Shell:ApplicationBarIconButton x:Name="HistoryAppIconButton" Click="HistoryMenuItemClick" IconUri="/Images/Icons/32/Intl-History.png" Text="History" />
        <Shell:ApplicationBarIconButton x:Name="StatisticsAppIconButton" Click="StatisticsMenuItemClick" IconUri="/Images/Icons/32/Stats.png" Text="Stats" />
        <Shell:ApplicationBarIconButton x:Name="OptionsAppIconButton" Click="OptionsMenuItemClick" IconUri="/Images/Icons/32/Settings.png" Text="Options" />
    </Shell:ApplicationBar.Buttons>
    <Shell:ApplicationBar.MenuItems>
        <Shell:ApplicationBarMenuItem x:Name="StartingHandsMenuItem" Click="StartingHandsMenuItemClick" Text="Starting Hands" />
        <Shell:ApplicationBarMenuItem x:Name="HoleOddsMenuItem" Click="HoleOddsMenuItemClick" Text="Hole Odds" />
    </Shell:ApplicationBar.MenuItems>
</Shell:ApplicationBar> 

AppBar на странице приложения телефона:

ApplicationBar="{StaticResource GlobalApplicationBar}"   //In my page.xaml

1 Ответ

0 голосов
/ 24 ноября 2010

Оставляя в стороне тот факт, что вы ссылаетесь на очевидные различия между бета-версией и CTP-версией инструментов.
Панель приложения отображается поверх содержимого страницы в зависимости от его непрозрачности:

Если непрозрачность установлена ​​в 1, отображаемая страница будет изменена, чтобы быть область экрана не покрыта Панель приложений.

от MSDN

...