我目前在 Silverlight 中有一个问题,我想检测元素大小的变化,并对其做出反应。然而,听.SizeChanged
实际上是不够的,因为在.SizeChanged
调用中的功能之前,我经常会在它改变的大小处得到一个元素的闪光。所以我可能有两个问题。
我的目的是在视觉上改变大小之前使用 Measure pass 来计算我想要应用的操作,这样我就可以消除这种闪烁效果。据我所知,成功执行此操作的唯一方法是创建一个 UIElement,该 UIElement 在测量其余这些元素之前在 Measure 通道上执行这些计算。
因此,我希望通过扩展 FrameworkElement 来创建一个非常轻量级的 UIElement。 但是,我不能让愚蠢的东西显示任何东西。我的印象是,在 FrameworkElement 级别,子类需要将内容添加到 VisualTree,我似乎无法弄清楚如何做到这一点。
我希望避免扩展UserControl
,或者Panel
,因为它们比我需要的要重得多,所以有很多我不想要的额外功能。我只想赶上 Measure 通过并在那里执行一些工作。
那么,是否可以FrameworkElement
在 Silverlight 4.0 中扩展并实际渲染一些东西?如果没有,是否可以通过另一种方式监听/中断测量传递?