Situation: White rectangle is drawn on DrawingVisual.
Goal: Clear a part (geometry) of it to make it transparent.
Windows Forms alternative: Graphics.Clear
Code:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); visuals = new VisualCollection(this); DrawIt(); } VisualCollection visuals; void DrawIt() { DrawingVisual visual = new DrawingVisual(); using (DrawingContext dc = visual.RenderOpen()) { dc.DrawRectangle( Brushes.White, new Pen(), new Rect(10, 10, 100, 100)); dc.DrawRectangle( Brushes.Red, new Pen(), new Rect(50, 50, 20, 20)); // Remove it } visuals.Add(visual); } protected override Visual GetVisualChild(int index) { return visuals[index]; } protected override int VisualChildrenCount { get { return visuals.Count; } } }