应用程序在更改应用程序栏可见性时崩溃

时间:2015-03-28 13:41:46

标签: c# windows-phone-8 windows-phone-8.1

我正在创建一个全景应用程序,我想要对应用程序栏进行处理,因此它只对单个页面可见。 我在XAML中创建了应用程序栏:

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar x:Name="AppBar_Opere" IsVisible="False" IsMenuEnabled="True" Mode="Default" Opacity="0.95" >

        <shell:ApplicationBarIconButton IconUri="/Assets/AppBar/feature.search.png" Text="cauta" />
        <shell:ApplicationBarIconButton IconUri="/Assets/AppBar1/favs.png" Text="favorite" />
        <shell:ApplicationBarIconButton IconUri="/Assets/AppBar2/feature.settings.png" Text="setari" />

        <shell:ApplicationBar.MenuItems>
            <shell:ApplicationBarMenuItem Text="Clasa a IX-a" />
            <shell:ApplicationBarMenuItem Text="Clasa a X-ea" />
            <shell:ApplicationBarMenuItem Text="Clasa a XI-ea" />
            <shell:ApplicationBarMenuItem Text="Clasa a XII-ea" />
        </shell:ApplicationBar.MenuItems>

    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

然后,使用SelectionChanged事件,我写了这段代码:

private void Panorama_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        switch(((Panorama)sender).SelectedIndex)
        {
            case 1:
                AppBar_Opere.IsVisible = true;
                break;
            default:
                AppBar_Opere.IsVisible = false;
                break;
        }
    }

确定。当我导航到我希望ApplicationBar可见的页面时,应用程序崩溃,&#34; 对象引用未设置为对象的实例&#34; 在线:

AppBar_Opere.IsVisible = true;

为什么?

1 个答案:

答案 0 :(得分:0)

ApplicationBar不是Silverlight控件,因此您无法以这种方式访问​​它。 正确的代码是:

private void Panorama_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    switch(((Panorama)sender).SelectedIndex)
    {
         case 1:
             ApplicationBar.IsVisible = true;
             break;
         default:
             ApplicationBar.IsVisible = false;
             break;
    }
}