1

我有一些将 Canvas 的内容呈现为位图的代码。Canvas 的子元素会周期性地在视觉上发生变化,我需要一种方法来辨别这种情况何时发生,以便我可以重新绘制位图。我最初的想法是覆盖Canvas.OnRender,但是当孩子重新渲染时,这似乎没有被调用。

任何建议将不胜感激

4

1 回答 1

2

请记住,WPF 不是基于帧重绘,而是更多地基于脏区域的概念。此外,OnRender 不像 OnPaint,它用于创建缓存表示来渲染实际内容,在大多数情况下,它不需要重新渲染来显示一些更改,这就是它不被调用的原因。要获得您想要的效果,您可以使用CompositionTarget.Rendering事件。它可能是最接近绘画活动的地方。但是有一个警告,当您附加到该事件时,渲染行为会发生一些变化,请检查this

另一个想法可能是研究VisualBrush

于 2012-09-12T14:03:59.117 回答