Windows phone 7 移除应用程序栏或更改其可见性或不透明度时,全景动画将中断

Windows phone 7 移除应用程序栏或更改其可见性或不透明度时,全景动画将中断,windows-phone-7,windows-phone-8,Windows Phone 7,Windows Phone 8,我有3个全景项目,我只希望第一个有一个应用程序栏 因此,我开始实施删除其他全景项目的应用程序栏 我所做的是处理SelectionChanged事件并基于Panorama。SelectedIndex隐藏应用程序栏: this.ApplicationBar.IsVisible = this.Panorama.SelectedIndex == 0; 当滑动到第二项时,通常的全景动画不再工作,过渡动画消失,这是突然的 我没有更改IsVisible,而是尝试了相同的结果: 删除应用程序条this.Ap

我有3个全景项目,我只希望第一个有一个应用程序栏

因此,我开始实施删除其他全景项目的应用程序栏

我所做的是处理
SelectionChanged
事件并基于
Panorama。SelectedIndex
隐藏应用程序栏:

this.ApplicationBar.IsVisible = this.Panorama.SelectedIndex == 0;
当滑动到第二项时,通常的全景动画不再工作,过渡动画消失,这是突然的

我没有更改
IsVisible
,而是尝试了相同的结果:

  • 删除应用程序条
    this.ApplicationBar=null
  • 将不透明度设置为零
    this.ApplicationBar.opacity=0
有趣的是,即使将不透明度更改为0.5,动画也会被破坏

我的感觉是,应用程序栏中的布局更改事件会产生这种全景式的破坏行为


我还没有找到解决办法。

把整个全景放在一个面板上

<StackPanel>
<phone:Panorama Title="my application">
<phone:PanoramaItem Header="first item"/>
<phone:PanoramaItem Header="second item" Tap="OnPanoramaItemTap"/>
</phone:Panorama Title="my application">
</StackPanel>


 private void OnPanoramaItemTap(object sender, System.Windows.Input.GestureEventArgs e)
    {
        ApplicationBar.IsVisible = false;
    }

PanoramaItemTap上的私有void(对象发送方,System.Windows.Input.GestureEventArgs e)
{
ApplicationBar.IsVisible=false;
}

这只是一个想法,但它正在发挥作用,我希望这对您的案例有好处

如果您使用pivot,您可以很容易地实现它,因为在pivot中,转换是突然的。我需要全景,真有趣!看起来很有效,你能解释一下原因吗?我甚至不明白它是怎么工作的。在StackPanel中,我不认为Panorama会垂直拉伸以占据整个屏幕。例如,按钮只有一个内容,但如果你将StackPanel放入其中,你可以做任何你想做的事情。我不明白为什么StackPanel不会影响过渡动画问题,而将Panorama放置在网格中则会影响,我仍然不明白StackPanel是如何解决这个问题的