什么是Silverlight中的OnRender?

时间:2010-03-16 05:39:48

标签: wpf silverlight silverlight-3.0

我正在努力将应用程序从WPF移植到Silverlight。

该应用使用从FrameworkElement(在WPF中)派生的自定义类型来描述要在Canvas上呈现的形状和文本。

WPF app根节点覆盖OnRender()以遍历“子”节点集合,在每个子节点上调用Render以构建可视树。

Silverlight不公开OnRender,但有提示可以使用ControlTemplate实现相同的效果。

这是要走的路,是否有使用此方法的好例子?我做了一些谷歌搜索(binging?)并没有发现任何真正的结论。

2 个答案:

答案 0 :(得分:3)

没有直接替代OnRender,但如果您阅读http://msdn.microsoft.com/en-us/library/dd351483(v=VS.95).aspx,您会看到MeasureOverrideArrangeOverride可让您控制您控件中的可视树。

答案 1 :(得分:1)

Gabe说,但是当Silverlight完成“Rendering”时会发生一个事件,名为CompositionTarget.Rendering:

http://msdn.microsoft.com/en-us/library/system.windows.media.compositiontarget.rendering(VS.95).aspx

它与“OnRenderFrameComplete”

最接近

我仍然建议使用Measure and Arrange覆盖,因为它们是“正确”的方式。