C# 重画时的WPF事件

C# 重画时的WPF事件,c#,.net,wpf,events,rendering,C#,.net,Wpf,Events,Rendering,我有一些将画布内容渲染为位图的代码。画布的子元素可以周期性地在视觉上发生变化,我需要一种识别这种情况发生的方法,以便重新绘制位图。我最初的想法是重写Canvas.OnRender,但当子对象重新渲染时,似乎没有调用它 任何建议都将不胜感激请记住,WPF不是在帧基础上重新绘制的,而是更多地基于脏区域的概念。此外,OnRender与OnPaint不同,它用于创建缓存表示以呈现实际内容,在大多数情况下,不需要重新呈现以显示某些更改,这就是为什么不调用它的原因。要获得想要的效果,可以使用事件。它可能是最

我有一些将画布内容渲染为位图的代码。画布的子元素可以周期性地在视觉上发生变化,我需要一种识别这种情况发生的方法,以便重新绘制位图。我最初的想法是重写Canvas.OnRender,但当子对象重新渲染时,似乎没有调用它


任何建议都将不胜感激

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


另一个想法可能是调查。

问题在于,它会不断开火,而不是在检测到脏区域时。指示区域已标记为脏的事件是理想的。我注意到在WPF性能套件中,脏区域可以高亮显示,因此这些数据必须在某个地方可用…可能使用VisualBrush和更改的事件。史努普也做了类似的事情。