【发布时间】:2011-01-18 02:57:08
【问题描述】:
我在 Silverlight.net (here) 上发布了这个。我猜他们和其他人一样对负载的工作原理感到困惑,因为我没有得到回应。
找到的 MSDN 文档说:
您可以处理 LayoutUpdated 而不是 Loaded。 LayoutUpdated 是在 Silverlight UI 中启用控件序列中的最后一个“对象生存期”事件。 LayoutUpdated 的主要限制是初始化可能不是唯一一次引发 LayoutUpdated。
(问题 1) 与上述语句相反,意味着 Loaded 事件只能被引发一次。对吗??
上面引用的 MSDN 文档也说(关于 Loaded 事件):
在构建 FrameworkElement 并将其添加到对象树时发生。 (继承自 FrameworkElement。)
上述声明在此处引用的文档中重复和强调,似乎试图调和问题。
但是加载事件的详细文档说:
在 Silverlight 中,不能保证在应用模板后发生 Loaded 事件。如果您将 Loaded 事件用于相对常见的控制场景,这可能对您来说是个问题:您想要检查可视化树...
(问题 2)这很令人困惑。 (以上两个陈述是矛盾的)或(有可能构建一个FrameworkElement并将其添加到对象树中并且尚未应用模板)。后者似乎不太可能,因为第二个 msdn 语句引用了可视化树。请澄清这些陈述中哪些是正确的。 (问题3)另外,“不保证之后发生”是指它可能发生在之前,还是根本不会发生?
【问题讨论】:
标签: silverlight