ApplicationBar始终为NULL

Van*_*nel 12 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" 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>
Run Code Online (Sandbox Code Playgroud)

但在C#代码中总是如此null.

你知道为什么吗?

Nig*_*son 16

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

您可以通过PhoneApplicationPage上的属性引用ApplicationBar.

var helpItem = this.ApplicationBar.MenuItems[0];
var aboutItem = this.ApplicationBar.MenuItems[1];
Run Code Online (Sandbox Code Playgroud)


Phi*_*hil 6

当我想改变可见性时,我发现这对我有用:

(ApplicationBar as ApplicationBar).IsVisible = true;
Run Code Online (Sandbox Code Playgroud)

我从马修那里得到了答案