ApplicationBar在Windows Phone 7 Beta中的工作方式与CTP不同

时间:2010-07-27 18:13:44

标签: c# silverlight xaml mobile windows-phone-7

我注意到WP7工具的测试版有几个问题:

  • ApplicationBar不再导致页面使用CTP解决方法调整其内容的大小
  • 使用App.xaml中的ApplicationBar并作为静态资源导入无法按预期工作

在使用appbar和页面导航的WP7工具的CTP版本中,appbar保留在页面内容之上,而不是让内容自行调整大小以位于appbar之上。解决方法是在构造函数中将IsVisible属性设置为false,并在页面加载的事件上设置为true。这已不再有效,并且除非完全关闭,否则appbar会保留在已加载页面的顶部。我在app.xaml中有我的appbar xaml,每个页面都将它用作静态资源。

此外,不再为app按钮触发click事件,我使用appbar作为App.xaml中的资源,并在我的页面的xaml中添加为{StaticResource}。任何帮助都将受到赞赏,因为除了滚动我自己的导航页面之外,这是我浏览应用程序的唯一方法。

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 :(得分:0)

撇开你所指的工具的Beta和CTP版本之间的感知差异这一事实 ApplicationBar根据其不透明度显示在页面顶部的内容:

  

如果不透明度设置为1,则   显示的页面将调整为大小   屏幕区域未被覆盖   应用栏。

来自MSDN