WPF doesn't appear to convey visibility information during rendering so it does no culling and, consequently, performance can be awful. So I'm interested in the idea of circumventing WPF's normal rendering pipeline in order to replace it with a more efficient one.
For example, given a scroll viewer containing a grid of controls I'd like to precalculate the locations of the controls in the grid in order to render only potentially visible controls given the visible region within the scroll viewer. So I'd replace the scroll viewer's renderer with one that passes that visibility information and then replace the grid's renderer with one that uses that visibility information to cull controls that lie completely outside the visible region.
Is this possible and, if so, how might it be accomplished?