【问题标题】:Missing Unload event in Silverlight 2Silverlight 2 中缺少卸载事件
【发布时间】:2009-11-12 17:49:11
【问题描述】:

Silverlight 2 缺少用户控件的卸载事件。有没有人为此实施了解决方法?

【问题讨论】:

  • 我怀疑这是不可能的,因为控件在退出页面时会被卸载,但是当它们退出页面时,silverlight 进程(作为客户端)结束
  • 您能解释一下您要做什么吗?这将帮助人们想出一个不需要 Unloaded 事件的解决方案。

标签: silverlight silverlight-2.0


【解决方案1】:

您可能想看这里: http://gallery.expression.microsoft.com/en-us/SLUnloadedBehavior

代码适用于 SL 3,但如果您删除行为代码,它应该适用于 Sl2

@KeithMahony

一种情况是您希望防止事件内存泄漏,这是大多数人倾向于忽略的 Silverlight 开发的陷阱之一。

【讨论】:

    【解决方案2】:

    我认为你会得到最接近的是Application Services,它可以让你检测 Silverlight 应用程序何时关闭并做出响应。如果您使用的是导航应用程序,那么您可以挂钩到父框架的导航事件以确定页面正在“卸载”。

    你想做什么需要用户控件来响应卸载事件?

    【讨论】:

    • 用户控件有后台工作线程从 Web 服务检索数据。如果用户控件关闭,这些worker需要有序的关闭。
    • 我会将这些后台工作人员放在其他地方,并在您不再显示用户控件时将其关闭。
    【解决方案3】:

    考虑使用 Silverlight 4。我带来了 - 最后 - 一个 Unloaded 事件。

    【讨论】:

    • 但是 - 唉 - 请注意,它的用处是有限的。来自文档:“如果 Silverlight 应用程序因任何原因关闭,则不会为任何对象引发 Unloaded。这包括浏览器主机应用程序或浏览器外窗口被用户关闭的情况。”
    猜你喜欢
    • 2021-11-03
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多