【问题标题】:Accessing applicataion bar from non UI class windows phone 8从非 UI 类 windows phone 8 访问应用程序栏
【发布时间】:2014-06-04 22:50:42
【问题描述】:

在我的 windows phone 应用程序中,我有一个非 UI 类,当从 UI 页面调用时,它将显示和隐藏一个弹出屏幕。

我想在弹出窗口显示时隐藏应用栏,并在弹出窗口关闭时再次显示应用栏。

现在这里的挑战是我在非 UI 类中有一个计时器,它处理弹出窗口的关闭。所以从 UI 类我只能启动弹出窗口。关闭由非 UI 类控制。所以现在我需要从非 UI 类访问 appbar。

如果我能做到这一点,任何人都可以帮助我,如果不能做到,任何人都可以帮助我。 ?

谢谢。

【问题讨论】:

  • 您根本不应该从非 UI 类访问您的 UI,因为它是一个非 UI 类。它应该只是向 UI 类发出 it 应该更新 UI 的信号,例如通过事件、回调等。具体而言,如何根据上下文而有所不同。
  • 在我的例子中它相当复杂,因为该类被许多 UI 页面使用。所以发信号很困难。有没有可能让这成为可能?
  • 是的,有。正如我所说,它应该触发一个事件,接受一个回调,返回一个Task,或者其他一些类似的异步机制,UI 可以在适当的时间更新自身
  • 你能给我一些链接或一些详细了解它的东西吗?
  • 看看this blog post,它完全符合您的要求。搜索ApplicationBar

标签: c# windows-phone-8 application-bar


【解决方案1】:

也许使用Popup.Closed Event 会有所帮助:

private void myPopup_Close(object sender, System.EventArgs e)
{
   // get current Page
   var currentPage = ((App.Current as App).RootVisual as PhoneApplicationFrame).Content as PhoneApplicationPage;
    // hide popup
    currentPage.ApplicationBar.IsVisible = true;
}

【讨论】:

  • @Presse 欢迎您。请注意,上面的代码非常简单,应该改进。 Shawn Kendrot added nice link 可以找到很多信息。
  • 谢谢。我会确认的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多