我正在努力将应用程序从WPF移植到Silverlight。
该应用使用从FrameworkElement
(在WPF中)派生的自定义类型来描述要在Canvas
上呈现的形状和文本。
WPF app根节点覆盖OnRender()
以遍历“子”节点集合,在每个子节点上调用Render
以构建可视树。
Silverlight不公开OnRender
,但有提示可以使用ControlTemplate
实现相同的效果。
这是要走的路,是否有使用此方法的好例子?我做了一些谷歌搜索(binging?)并没有发现任何真正的结论。
答案 0 :(得分:3)
没有直接替代OnRender,但如果您阅读http://msdn.microsoft.com/en-us/library/dd351483(v=VS.95).aspx,您会看到MeasureOverride和ArrangeOverride可让您控制您控件中的可视树。
答案 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覆盖,因为它们是“正确”的方式。