首页 新闻 会员 周边 捐助

WindowsPhone采用全景视图布局,如何让不同的全景区域显示不同的菜单栏?

0
悬赏园豆:20 [待解决问题]

四个全景区域代码如下:

<controls:PanoramaItem Header="最新动态">
<ListBox x:Name="All" Margin="0,0,-12,0" ItemsSource="{Binding}">
</ListBox>
</controls:PanoramaItem>
<controls:PanoramaItem Header="分类查看">
<ListBox Margin="0,0,-12,0">
<ListBoxItem>
<StackPanel Orientation="Horizontal" Margin="0,0,0,17">
<Image Width="100" Height="100" Source="images/sinablog.png" Margin="12,0,9,0"/>
<StackPanel Width="311">
 <TextBlock Text="新浪微博" FontSize="42.667" />
<TextBlock Text="对该功能的描述" FontSize="20" />
</StackPanel>
</StackPanel>
</ListBoxItem>
<controls:PanoramaItem Header="我的关注">
<ListBox x:Name="Care" Margin="0,0,-12,0" ItemsSource="{Binding}">
</ListBox>
</controls:PanoramaItem>
<controls:PanoramaItem Header="发布状态">
</controls:PanoramaItem>
其中“最新动态”这个全景区域的菜单栏代码如下:
    <phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" Opacity="0.5" StateChanged="ApplicationBar_StateChanged">
            <shell:ApplicationBar.MenuItems>
                <shell:ApplicationBarMenuItem Text="清空全部状态" Click="ApplicationBarMenuItem_Click"/>
                <shell:ApplicationBarMenuItem Text="切换账号" Click="ApplicationBarMenuItem_Click_1"/>
                <shell:ApplicationBarMenuItem Text="设置与帮助" Click="ApplicationBarMenuItem_Click_2"/>
            </shell:ApplicationBar.MenuItems>
        </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>
如何才能让这个菜单栏只在“最新动态”这个全景区域中显示?

 

 
源子陌的主页 源子陌 | 初学一级 | 园豆:6
提问于:2012-11-20 15:46
< >
分享
所有回答(3)
0

没有办法!

net小伙 | 园豆:232 (菜鸟二级) | 2012-11-23 11:23
0

以前写的例子:

在PhoneApplicationPage.Resources中添加ApplicationBar

在xaml中:

    <phone:PhoneApplicationPage.Resources>         <shell:ApplicationBar x:Key="AppBar1" IsVisible="True" IsMenuEnabled="True" Mode="Default">             <shell:ApplicationBarIconButton IconUri="/icons/appbar.next.rest.png" Text="item1" Click="ApplicationBarIconButton_Click" />         </shell:ApplicationBar>         <shell:ApplicationBar x:Key="AppBar2" IsVisible="True" IsMenuEnabled="True" Mode="Minimized">             <shell:ApplicationBarIconButton IconUri="/icons/appbar.edit.rest.png" Text="item2" Click="ApplicationBarIconButton_Click_1" />         </shell:ApplicationBar>         <shell:ApplicationBar x:Key="AppBar3" IsVisible="True" IsMenuEnabled="True" Mode="Default">             <shell:ApplicationBarIconButton IconUri="/icons/appbar.cancel.rest.png" Text="item3" Click="ApplicationBarIconButton_Click_2" /> 10         </shell:ApplicationBar> 11     </phone:PhoneApplicationPage.Resources>

 

 

在Pivot_SelectionChanged事件中:

        private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)         {             switch (((Pivot)sender).SelectedIndex)             {                 case 0:                     ApplicationBar = ((ApplicationBar)this.Resources["AppBar1"]);                     break;                 case 1:                     ApplicationBar = ((ApplicationBar)this.Resources["AppBar2"]); 10                     break; 11                 case 2: 12                     ApplicationBar = ((ApplicationBar)this.Resources["AppBar3"]); 13                     break; 14             } 15         }
 
貌似复制过来变形了
 
其实简单说就是在Resources里定义多个ApplicationBar
然后在Panorama或Pivot的切换事件里指定ApplicationBar为Resources里的某一个
sun8134 | 园豆:298 (菜鸟二级) | 2013-03-12 21:48
0

可以用资源实现!

资源中预写入多种bar

然后代码中通过判断目前处于第几项的全景区域,然后动态加载Bar到UI中就可以实现了

然后、没所以 | 园豆:5 (初学一级) | 2013-08-01 17:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册