Exemple #1
0
        void DrawSample(Graphics graphics)
        {
            using (graphics.Generator.Context)
            {
                graphics.FillRectangle(Brushes.Green(), 0, 0, 200, 200);
                if (UseGraphicsPathClip)
                {
                    var path = GraphicsPath.GetRoundRect(new RectangleF(10, 10, 180, 180), 20);
                    graphics.SetClip(path);
                }
                else
                {
                    graphics.SetClip(new RectangleF(10, 10, 180, 180));
                }

                if (UseClearColor)
                {
                    graphics.Clear(new SolidBrush(new Color(Colors.Red, 0.5f)));
                }
                else
                {
                    graphics.Clear();
                }
                graphics.FillEllipse(Brushes.Blue(), 25, 25, 150, 150);
            }
        }
Exemple #2
0
        Control DrawableControl()
        {
            var control = new Drawable {
                Size = new Size(100, 30), CanFocus = true
            };

            control.Paint += delegate(object sender, PaintEventArgs pe) {
                pe.Graphics.FillRectangle(Brushes.Blue(), pe.ClipRectangle);
            };
            LogEvents(control);
            return(control);
        }
Exemple #3
0
        Control PathClip()
        {
            var control = new Drawable {
                Size = new Size(350, 250)
            };

            control.Paint += (sender, e) => {
                using (Generator.Context)
                {
                    var path = new GraphicsPath();
                    path.AddEllipse(25, 25, 50, 50);
                    path.AddRectangle(125, 25, 50, 50);
                    path.AddLines(new PointF(225, 25), new PointF(225, 75), new PointF(275, 50));
                    path.CloseFigure();

                    e.Graphics.SetClip(path);
                    if (ResetClip)
                    {
                        e.Graphics.ResetClip();
                    }
                    e.Graphics.FillRectangle(Brushes.Blue(), path.Bounds);

                    path.Transform(Matrix.FromTranslation(0, 75));
                    e.Graphics.SetClip(path);
                    if (ResetClip)
                    {
                        e.Graphics.ResetClip();
                    }
                    e.Graphics.FillRectangle(Brushes.Red(), path.Bounds);

                    path.Transform(Matrix.FromTranslation(0, 75));
                    e.Graphics.SetClip(path);
                    if (ResetClip)
                    {
                        e.Graphics.ResetClip();
                    }
                    e.Graphics.FillRectangle(Brushes.Green(), path.Bounds);
                }
            };
            PropertyChanged += (sender, e) =>
            {
                if (e.PropertyName == "ResetClip")
                {
                    control.Invalidate();
                }
            };
            return(control);
        }
Exemple #4
0
        Control RectangleClip()
        {
            var control = new Drawable {
                Size = new Size(300, 100)
            };

            control.Paint += (sender, e) => {
                using (Generator.Context)
                {
                    e.Graphics.SetClip(new RectangleF(25, 25, 50, 50));
                    if (ResetClip)
                    {
                        e.Graphics.ResetClip();
                    }
                    e.Graphics.FillRectangle(Brushes.Blue(), new RectangleF(25, 0, 100, 100));

                    e.Graphics.SetClip(new RectangleF(125, 25, 50, 50));
                    if (ResetClip)
                    {
                        e.Graphics.ResetClip();
                    }
                    e.Graphics.FillRectangle(Brushes.Red(), new RectangleF(125, 0, 100, 100));

                    e.Graphics.SetClip(new RectangleF(225, 25, 50, 50));
                    if (ResetClip)
                    {
                        e.Graphics.ResetClip();
                    }
                    e.Graphics.FillRectangle(Brushes.Green(), new RectangleF(225, 0, 100, 100));
                }
            };
            PropertyChanged += (sender, e) =>
            {
                if (e.PropertyName == "ResetClip")
                {
                    control.Invalidate();
                }
            };
            return(control);
        }