Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

WPF: How to clear a region in DrawingVisual ?

$
0
0

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; }
        }
    }


Viewing all articles
Browse latest Browse all 18858

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>