【问题标题】:Panorama animation is broken when removing ApplicationBar or changing its visibility or opacity删除 ApplicationBar 或更改其可见性或不透明度时,全景动画被破坏
【发布时间】:2013-02-08 23:39:33
【问题描述】:

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

所以我开始实施移除其他全景项目的应用栏。

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

this.ApplicationBar.IsVisible = this.Panorama.SelectedIndex == 0;

滑动到第二项时,通常的全景动画不再起作用,过渡动画消失了,很突然。

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

  • 移除应用栏this.ApplicationBar = null
  • 将不透明度设置为零this.ApplicationBar.Opacity = 0

有趣的是,即使将不透明度更改为 0.5,动画也会被破坏

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

我还没有找到解决办法。

【问题讨论】:

  • 如果你使用pivot,你可以很容易地实现它
  • 可能是因为在一个支点中,过渡是突然的。我需要全景图。
  • 这很有趣!看起来它有效,你能解释一下为什么吗?我什至不明白它是如何工作的。在 StackPanel 中,我认为全景图不会垂直拉伸以占据整个屏幕。
  • 例如按钮只有一个内容,但是如果你在里面放一个stackpanel,你可以做任何你想做的事情
  • 我不明白为什么 StackPanel 不会影响过渡动画问题,而在 Grid 中拥有全景图会影响

标签: windows-phone-7 windows-phone-8


【解决方案1】:

将整个全景图放在一个堆栈面板中

<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;
    }

这只是一个想法,但它正在工作,我希望它对你的情况有好处

【讨论】:

  • 谢谢,但是我还是不明白 StackPanel 是如何解决这个问题的
猜你喜欢
  • 2012-07-28
  • 2017-04-25
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 2012-09-20
  • 2013-04-23
相关资源
最近更新 更多