我正在创建一个全景应用程序,我想要对应用程序栏进行处理,因此它只对单个页面可见。 我在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;
为什么?
答案 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;
}
}