ΠΠΈΡΡΠΈ
GDI+ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄ΠΎΠ² ΠΊΠΈΡΡΠ΅ΠΉ, ΠΌΡ ΠΎΠ±ΡΡΡΠ½ΠΈΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ , ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΡ ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ . ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ ΠΊΠΈΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΈΠ· System.Drawing.Brush (ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Brush ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²). ΠΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΠΊΠΈΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠΏΠ»ΠΎΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠΎΡ Π²ΠΈΠ΄ ΠΊΠΈΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° System.Drawing.SolidBrush, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Brush solidBeigeBrush = new SolidBrush(Color.Beige);
Brush solidFunnyOrangyBrownBrush = new SolidBrush(Color.FromArgb(255, 155, 100)
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ, Π΅ΡΠ»ΠΈ ΠΊΠΈΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ²Π΅ΡΠΎΠ² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° System.Drawing.Brushes. Brushes ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ (ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΡΡΠΎΠ±Ρ Π½Π΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ). ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°. Brushes ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊ:
Brush solidAzureBrush = Brushes.Azure;
Brush solidChocolateBrush = Brushes.Chocolate;
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠΈΡ ΠΎΠ²Π°Ρ ΠΊΠΈΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΡΡ, ΡΠΈΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±Π»ΠΎΠ½-ΡΠ·ΠΎΡ. ΠΡΠΎΡ ΡΠΈΠΏ ΠΊΠΈΡΡΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ Drawing2D, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ System.Drawing.Drawing2D.HatchBrush. ΠΠ»Π°ΡΡ Brushes Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΡΠΈΡ ΠΎΠ²ΠΎΠΉ ΠΊΠΈΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π½ΠΎ, Π·Π°Π΄Π°Π²Π°Ρ ΡΡΠΈΠ»Ρ ΡΡΡΠΈΡ ΠΎΠ²ΠΊΠΈ ΠΈ Π΄Π²Π° ΡΠ²Π΅ΡΠ° β ΡΠ²Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π° ΠΈ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° (Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ). Π‘ΡΠΈΠ»Ρ ΡΡΡΠΈΡ ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ System.Drawing.Drawing2D.HatchStyle. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ HatchStyle, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ MSDN Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°. Π’ΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π»ΡΡΡΡΡ ForwardDiagonal, Cross, DiagonalCross, SmallConfetti ΠΈ ZigZag. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠΈΡ ΠΎΠ²ΠΎΠΉ ΠΊΠΈΡΡΠΈ
Brush crossBrush = new HatchBrush(HatchStyle.Cross, Color.Azure);
// ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ²Π΅Ρ Π΄Π»Ρ CrosstBrush Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠ½ΡΠΉ
Brush brickBrush = new HatchBrush(HatchStyle.DiagonalBrick, Color.DarkGoldenrod.Color.Cyan);
Π‘ΠΏΠ»ΠΎΡΠ½ΡΠ΅ ΠΈ ΡΡΡΠΈΡ ΠΎΠ²ΡΠ΅ ΠΊΠΈΡΡΠΈ β Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΈΡΡΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² GDI. GDI+ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΊΠΈΡΡΠΈ:
β‘ ΠΠΈΡΡΡ System.Drawing.Drawing2D.LinearGradientBrush Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΡΡ ΡΠ²Π΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅.
β‘ ΠΠΈΡΡΡ System.Drawing.Drawmg2D.PathGradientBrush Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π΅Ρ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²Π΄ΠΎΠ»Ρ ΠΊΡΠΈΠ²ΠΎΠΉ Π² Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π·Π΄Π΅ΡΡ ΡΡΠΈ ΠΊΠΈΡΡΠΈ. ΠΡΠΌΠ΅ΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ ΠΎΠ±Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ ΠΏΡΠΈ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡΠΈΠΌΠ΅Ρ Bezier ΠΈΠ· Π³Π»Π°Π²Ρ 9 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΈΡΡΡ Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ½Π° ΠΎΠΊΠ½Π°.
ΠΠ΅ΡΡΡ
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΊΠΈΡΡΠ΅ΠΉ ΠΏΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² β System.Drawing.Pen. ΠΠ΅ΡΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ ΡΠΆΠ½ΡΠΌ, ΡΠ΅ΠΌ ΡΠΈΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΈΠ½Ρ Π»ΠΈΠ½ΠΈΠΉ (ΡΠΈΡΠΈΠ½Ρ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ ), Π° Π΄Π»Ρ ΡΠΈΡΠΎΠΊΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ,β ΠΊΠ°ΠΊ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅Π΅. ΠΠ΅ΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π²ΡΠ΅Π΅ΡΡ ΡΠ°Π½Π΅Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Alignment, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅, Π³Π΄Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π³ΡΠ°Π½ΠΈΡΡ ΡΠΈΠ³ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π° Π»ΠΈΠ½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΡΡ ΡΠΈΠ³ΡΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ (Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΎΠΊΡΡΠ³Π»ΡΡΡ ΡΠΎΡΠΌΡ).
ΠΠ±Π»Π°ΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠΎΠ»ΡΡΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π° ΡΠΏΠ»ΠΎΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΊΠΈΡΡΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Pen ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Brush. ΠΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΎΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΈΠ½ΠΈΠΈ, ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΡΠΈΡ ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ Π·Π°ΡΠ΅Π½Π΅Π½ΠΈΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π°, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Pen. ΠΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ ΠΊΠΈΡΡΡ, ΠΎΠ±Π° ΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠΎ ΡΠΈΡΠΈΠ½ΠΎΠΉ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΠΊΡΠ΅Π»Ρ. ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ²Π΅ΡΡ ΠΈΠ»ΠΈ ΠΊΠΈΡΡΠΈ Π·Π°Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° float, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅Π΅ ΡΠΈΡΠΈΠ½Ρ ΠΏΠ΅ΡΠ° (Π½Π° ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Graphics, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ»Π»ΠΈΠΌΠ΅ΡΡΡ ΠΈΠ»ΠΈ Π΄ΡΠΉΠΌΡ, ΠΈΠ»ΠΈ Π΄ΠΎΠ»ΠΈ Π΄ΡΠΉΠΌΠΎΠ²). ΠΠΎΡΡΠΎΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΡΡ:
Brush brickBrush = new HatchBrush(HatchStyle.DiagonalBrick, Color.DarkGoldenrod, Color.Cyan);
Pen solidBluePen = new Pen(Color.FromArgb(0, 0, 255));
Pen solidWideBluePen = new Pen(Color.Blue, 4);
Pen brickPen = new Pen(BrickBrush);
Pen brickWidePen = new Pen(BrickBrush, 10);
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΡΠ΅Π² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ System.Drawing.Pens, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠ»Π°ΡΡΡ Brushes ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ΄ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΠ΅ΡΡΠ΅Π². ΠΡΠΈ ΠΏΠ΅ΡΡΡ Π²ΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΠΈΠ½Ρ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ²Π΅ΡΠΎΠ² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Pen SolidYellowPen = Pens.Yellow;
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡ ΠΈ Π»ΠΈΠ½ΠΈΠΉ
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ Π³Π»Π°Π²Ρ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠ³ΡΡ ΠΈ Ρ.Π΄. Π½Π° ΡΠΊΡΠ°Π½Π΅. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±Π·ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ Graphics, ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ β ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΈΡΡΠ΅ΠΉ ΠΈ ΠΏΠ΅ΡΡΠ΅Π².
System.Drawing.Graphics ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΠΎΠ½ΡΡΡΡ ΡΠΈΠ³ΡΡ ΠΈ ΡΠΏΠ»ΠΎΡΠ½ΡΠ΅ ΡΠΈΠ³ΡΡΡ. ΠΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΠ°Π±Π»ΠΈΡΠ° (ΡΠΌ. Π½ΠΈΠΆΠ΅) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Π΄Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠΈΠ³ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ΅ΡΠΎΠ΄ Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π§ΡΠΎ ΡΠΈΡΡΠ΅Ρ DrawLine ΠΠ΅ΡΠΎ, Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠΎΡΠΊΠΈ ΠΠ΄ΠΈΠ½ΠΎΡΠ½Π°Ρ ΠΏΡΡΠΌΠ°Ρ Π»ΠΈΠ½ΠΈΡ DrawRectangle ΠΠ΅ΡΠΎ, ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΠΎΠ½ΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° DrawEllipse ΠΠ΅ΡΠΎ, ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΠΎΠ½ΡΡΡ ΡΠ»Π»ΠΈΠΏΡΠ° FillRectangle ΠΠΈΡΡΡ, ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΠ°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ FillEllipse ΠΠΈΡΡΡ, ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΠ°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΡΠ»Π»ΠΈΠΏΡ DrawLines ΠΠ΅ΡΠΎ, ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΠ΅ΠΊ ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π»ΠΈΠ½ΠΈΠΉ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΎΡΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ DrawBezier ΠΠ΅ΡΠΎ, 4 ΡΠΎΡΠΊΠΈ ΠΠ»Π°Π΄ΠΊΠ°Ρ ΠΊΡΠΈΠ²Π°Ρ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠ°Ρ Π΄Π²Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠ°Ρ ΡΠ΅ΡΠ΅Π· Π΄Π²Π΅ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΡΠΎΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΠΌΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ DrawCurve ΠΠ΅ΡΠΎ, ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΠ΅ΠΊ ΠΠ»Π°Π΄ΠΊΠ°Ρ ΠΊΡΠΈΠ²Π°Ρ, ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠ°Ρ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΠΈ DrawArc ΠΠ΅ΡΠΎ, ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π΄Π²Π° ΡΠ³Π»Π° Π§Π°ΡΡΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ Π²Π½ΡΡΡΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠ³Π»Π°ΠΌΠΈ DrawClosedCurve ΠΠ΅ΡΠΎ, ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΠ΅ΠΊ ΠΠΎΠ΄ΠΎΠ±Π΅Π½ DrawCurve, Π½ΠΎ ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΡΠΌΡΡ Π»ΠΈΠ½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ² ΠΊΡΠΈΠ²ΠΎΠΉ DrawPie ΠΠ΅ΡΠΎ, ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π΄Π²Π° ΡΠ³Π»Π° ΠΠ»ΠΈΠ½ΠΎΠ²ΠΈΠ΄Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° FillPie ΠΠΈΡΡΡ, ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π΄Π²Π° ΡΠ³Π»Π° ΠΠ°ΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ ΠΊΠ»ΠΈΠ½ΠΎΠ²ΠΈΠ΄Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅ DrawPolygon ΠΠ΅ΡΠΎ, ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΠ΅ΠΊ ΠΠΎΠ΄ΠΎΠ±Π΅Π½ DrawLines, Π½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ²ΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΎΡΠΊΠΈ Π΄Π»Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΈΠ³ΡΡΡΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ ΡΠ΅ΠΌΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΈΡΡΠ΅ΠΉ. ΠΡΠΈΠΌΠ΅Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ScrollMoreShapes ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ° ScrollShapes. ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΈ ΡΠ»Π»ΠΈΠΏΡΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠΎΠ»ΡΡΡΡ Π»ΠΈΠ½ΠΈΡ ΠΈ Π·Π°ΠΊΡΠ°ΡΠΈΠΌ ΡΠΈΠ³ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΈΡΡΠ΅ΠΉ. ΠΡ ΡΠΆΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΠ»ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ. ΠΠ΅ΡΠ²ΠΎΠ΅: Π² ΡΠ²ΡΠ·ΠΈ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΠΊΠΈΡΡΡΠΌΠΈ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ System.Drawing.Drawing2D:
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΊΠ»Π°ΡΡΠ΅ Form1, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΌΠ΅ΡΡΠ°Ρ , Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠΈΠ³ΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ΅ΡΡΡ ΠΈ ΠΊΠΈΡΡΠΈ:
private Rectangle rectangleBounds =
new Rectangle(new Point(0, 0), new Size(200, 200));
private Rectangle ellipseBounds =
new Rectangle(new Point(50, 200), new Size(200, 150));
private Pen BluePen = new Pen(Color.Blue, 3);
private Pen RedPen = new Pen(Color.Red, 2);
private Brush SolidAzureBrush = Brushes.Azure;
private Brush CrossBrush = new HatchBrush(HatchStyle.Cross, Color.Azure);
static private Brush BrickBrush =
new HatchBrush(HatchStyle.DiagonalBrick, Color.DarkGoldenrod, Color.Cyan);
private Pen BrickWidePen = new Pen(BrickBrush, 10);