 <p>The most efficient seems to be setting the opacity in my tests. Another simple approach is to redraw the visuals that are affected.</p> <pre><code>using (DrawingContext dc = RenderOpen()) {} //Hide this visual </code></pre> <p>And then redraw when they become visible again.</p> <p>Rendering a blank drawingcontext seems to be very quick. But if you have complicated visuals it could take time to rerender them when they become visible.</p>