在Windows Phone 7应用程序中,我使用Pivot for UI.作为Pivot的一个项目,插入一个XAML页面,如下所示:
<Pivot_Item>
<myviews:a_page.xaml/>
</Pivot_Item>
Run Code Online (Sandbox Code Playgroud)
应用程序栏 - 标准模板 - 仅在该页面中使用,因为整个Pivot不需要它.但这不起作用.现在,我只能激活每个Pivot项目的栏或将其用于单独的非枢轴页面.
oxi*_*min 13
据我所知 - ApplicationBar与你有关Page,但Pivot只是对你的控制Page.因此,无论显示哪个选项卡,ApplicationBar都会为整个分配.PagePivot
您可以通过在资源部分中定义不同的应用程序栏来实现:
<phone:PhoneApplicationPage.Resources>
<shell:ApplicationBar x:Key="firstPivotTabApplicationBar" IsVisible="True">
...
</shell:ApplicationBar>
<shell:ApplicationBar x:Key="secondPivotTabApplicationBar" IsVisible="True">
...
</shell:ApplicationBar>
</phone:PhoneApplicationPage.Resources>
Run Code Online (Sandbox Code Playgroud)
并SelectionChanged在您的枢轴控件中处理事件:
private void MainPagePivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string pivotResource;
switch (_mainPagePivot.SelectedIndex)
{
case 0:
pivotResource = "firstPivotTabApplicationBar";
break;
case 1:
pivotResource = "secondPivotTabApplicationBar";
break;
default:
throw new ArgumentOutOfRangeException();
}
ApplicationBar = (ApplicationBar)Resources[pivotResource];
}
Run Code Online (Sandbox Code Playgroud)
key*_*rdP 11
最简单的方法是处理Pivot的LoadingPivotItem事件.
为PivotItem指定一个名称:
<Pivot_Item Name="myPivotItem">
<myviews:a_page.xaml/>
</Pivot_Item>
Run Code Online (Sandbox Code Playgroud)
在代码中:
private void pivotMain_LoadingPivotItem(object sender, PivotItemEventArgs e)
{
if (e.Item == myPivotItem)
ApplicationBar.IsVisible = true;
else
ApplicationBar.IsVisible = false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9035 次 |
| 最近记录: |