gpt4 book ai didi

silverlight - Silverlight Loaded 事件如何工作?

转载 作者:行者123 更新时间:2023-12-04 06:37:13 24 4
gpt4 key购买 nike

我将此发布在 Silverlight.net ( here ) 上。我想他们和其他人一样对负载的工作方式感到困惑,因为我没有得到回应。

找到的 MSDN 文档说:您可以处理 LayoutUpdated 而不是 Loaded。 LayoutUpdated 是在 Silverlight UI 中启用控件序列中的最后一个“对象生存期”事件。 LayoutUpdated 的主要限制是初始化可能不是引发 LayoutUpdated 的唯一时间。

(问题1)上述语句的反面意味着 Loaded 事件只能被引发一次。这是正确的吗?上面引用的 MSDN 文档也说(关于加载的事件):当 FrameworkElement 被构造并添加到对象树时发生。 (继承自 FrameworkElement。)在此处引用的文档中重复并强调了上述语句,该文档似乎试图调和该问题。但是,Loaded 事件的详细文档说:在 Silverlight 中,不保证 Loaded 事件发生在模板被应用。如果您将 Loaded 事件用于相对常见的控制场景,这对您来说可能是一个问题:您想检查可视化树...

(问题2)这是非常令人困惑的。 (以上两个说法是矛盾的) OR(有可能构造了 FrameworkElement 并将其添加到对象树中,并且尚未应用模板)。后者似乎不太可能,因为第二个 msdn 语句引用了可视化树。请澄清这些陈述中哪些是正确的。
(问题3)另外,“不保证发生在之后”是否意味着它可能发生在之前,或者根本不会发生?

最佳答案

Loaded 事件只会引发一次,除非您从对象树中删除该对象并稍后重新添加它,此时一切都会重新发生。

我可以确认 Loaded 事件可以在应用模板之前发生。正是出于这个原因,我在 OnApplyTemplate() 中执行了所有模板和可视化树检查操作,包括任何最后一分钟的初始化。

“不保证之后发生”是指操作的顺序,是的。在将对象添加到对象树后,加载将始终发生。

关于silverlight - Silverlight Loaded 事件如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4720089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com