Graphics.SetClip(path, (CombineMode)miCombineMode.Index)
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
class ClippingCombinations: Form
{
string strCaption = "CombineMode = ";
MenuItem miCombineMode;
public static void Main()
{
Application.Run(new ClippingCombinations());
}
protected override void OnPaint(PaintEventArgs pea)
{
DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
}
public ClippingCombinations()
{
ResizeRedraw = true;
Menu = new MainMenu();
Menu.MenuItems.Add("&CombineMode");
EventHandler ehClick = new EventHandler(MenuCombineModeOnClick);
for (int i = 0; i < 6; i++)
{
MenuItem mi = new MenuItem("&" + (CombineMode)i);
mi.Click += ehClick;
mi.RadioCheck = true;
Menu.MenuItems[0].MenuItems.Add(mi);
}
miCombineMode = Menu.MenuItems[0].MenuItems[0];
miCombineMode.Checked = true;
}
void MenuCombineModeOnClick(object obj, EventArgs ea)
{
miCombineMode.Checked = false;
miCombineMode = (MenuItem) obj;
miCombineMode.Checked = true;
Text = strCaption + (CombineMode)miCombineMode.Index;
Invalidate();
}
protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
{
GraphicsPath path = new GraphicsPath();
path.AddEllipse(0, 0, 2 * cx / 3, cy);
grfx.SetClip(path);
path.Reset();
path.AddEllipse(cx / 3, 0, 2 * cx / 3, cy);
grfx.SetClip(path, (CombineMode)miCombineMode.Index);
grfx.FillRectangle(Brushes.Red, 0, 0, cx, cy);
}
}
Related examples in the same category
1. | Graphics.Clear | | |
2. | Graphics.CopyFromScreen | | |
3. | Graphics.DashCap | | |
4. | Graphics.Dispose() | | |
5. | Graphics.DpiX | | |
6. | Graphics.DpiY | | |
7. | Graphics.DrawArc | | |
8. | Graphics.DrawBeziers | | |
9. | Graphics.DrawEllipse | | |
10. | Graphics.DrawIcon(Icon icon, int x, int y) | | |
11. | Graphics.DrawImage(Image i, int x, int y); | | |
12. | Graphics.DrawImage(Image img, int x, int y, int width, int height) | | |
13. | Graphics.DrawImage(im, rec, recPart, GraphicsUnit.Pixel) | | |
14. | Graphics.DrawImage(Image, Points[]) | | |
15. | Graphics.DrawLine(Pen p, int x0,int y0, int x1, int y1) | | |
16. | Graphics.DrawLine(Pen,Point point1, Point point2) | | |
17. | Graphics.DrawLines(Pen pen, Point[] points) | | |
18. | Graphics.DrawPie | | |
19. | Graphics.DrawRectangle | | |
20. | Graphics.DrawRectangles | | |
21. | Graphics.DrawString | | |
22. | Graphics.EnumerateMetafileProc | | |
23. | Graphics.FillClosedCurve | | |
24. | Graphics.FillEllipse | | |
25. | Graphics.FillEllipse(Brush brush,int x, int y,int width,int height) | | |
26. | Graphics.FillPath(Brushes.AliceBlue, myPath); | | |
27. | Graphics.FillPolygon | | |
28. | Graphics.FillRectangle | | |
29. | Graphics.FillRectangles | | |
30. | Graphics.FillRegion | | |
31. | Graphics.FromHwnd() | | |
32. | Graphics.FromImage | | |
33. | Graphics.InterpolationMode | | |
34. | Graphics.MeasureString | | |
35. | Graphics.PageScale | | |
36. | Graphics.PageUnit | | |
37. | Graphics.PixelOffsetMode | | |
38. | Graphics.ReleaseHdc | | |
39. | Graphics.RotateTransform | | |
40. | Graphics.ScaleTransform | | |
41. | Graphics.SetClip | | |
42. | Graphics.SmoothingMode | | |
43. | Graphics.TextRenderingHint | | |
44. | Graphics.Transform | | |
45. | Graphics.TranslateClip | | |
46. | Graphics.TranslateTransform | | |
47. | Graphics.VisibleClipBounds | | |