Windows phone 7 ApplicationBar始终为空

Windows phone 7 ApplicationBar始终为空,windows-phone-7,application-bar,Windows Phone 7,Application Bar,我有以下XAML代码: <phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar IsVisible="True" IsMenuEnabled="False" x:Name="PageBar"> <shell:ApplicationBarIconButton IconUri="/Assets/Icons/appbar.questionmark.rest.png" Tex

我有以下XAML代码:

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="False" x:Name="PageBar">
        <shell:ApplicationBarIconButton IconUri="/Assets/Icons/appbar.questionmark.rest.png" Text="Help" x:Name="HelpIcon" Click="HelpIcon_Click" />
        <shell:ApplicationBar.MenuItems>
            <shell:ApplicationBarMenuItem Text="Help" x:Name="HelpItem" Click="HelpIcon_Click" />
            <shell:ApplicationBarMenuItem Text="About" x:Name="AboutItem" Click="AboutItem_Click" />
        </shell:ApplicationBar.MenuItems>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

但是在C#code内部总是
null


你知道为什么吗?

在一些愚蠢的决定中,ApplicationBar不是标准的Silverlight对象,因为它实际上不适合可视化树,不能绑定到,并且x:Name不起作用

您可以通过PhoneApplicationPage上的属性引用应用程序栏

var helpItem = this.ApplicationBar.MenuItems[0];
var aboutItem = this.ApplicationBar.MenuItems[1];

当我想改变视觉效果时,我发现这对我很有用:

(ApplicationBar as ApplicationBar).IsVisible = true;

我从

中得到了答案,您在应用程序/页面生命周期的什么时候尝试访问应用程序栏?当您试图访问它时,它可能还没有被创建。您还可以用代码创建ApplicationBar,然后可以按名称引用它。