Π ΠΈΡ. 5.3. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π°ΠΆΠ°ΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΠ° ΠΊΠ°ΡΠΌΠ°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ Π²ΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΠΎΡΠΎΠ±ΡΠΉ ΡΠΏΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ. Π ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ Π΅ΡΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΊΠ»ΡΡΠΈΡΡ, ΡΠΎ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΏΠ°Π΄ΡΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π² ΡΠΏΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΈΠΌΠΈΡΠΈΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΡΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ API keybd_event, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 5.4.
ΠΠΈΡΡΠΈΠ½Π³ 5.4/// <summary>
/// Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅
/// </summary>
/// <param name="bVk">ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π΄Π»Ρ ΠΈΠΌΠΈΡΠ°ΡΠΈΠΈ
/// Π½Π°ΠΆΠ°ΡΠΈΡ ΠΈ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ</param>
/// <param name="bScan">ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΎ - ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π²
// 0</param>
/// <param name="dwFlags">Π€Π»Π°Π³</param>
/// <param name="dwExtraInfo">ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ</param>
[DllImport("coredll.dll", CharSet = CharSet.Unicode)]
public static extern void
keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
// ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
public const int VK_OEM_8 = 0xDF;
private void butOff_Click(object sender, EventArgs e) {
// ΠΠΌΠΈΡΠΈΡΡΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
keybd_event(VK_OEM_8, 0, 0, 0);
}
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅, ΡΠΎ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΎΠ³ ΠΠ»Π΅ΠΊΡΠ° Π―Ρ Π½ΠΈΠ½Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ blog.opennetcf.org/ayakhnin. Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΠ°ΡΡΡ Β«Keyboard hook in the CF v2Β». Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π»ΡΠ±ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΡΠ°ΡΡΡ Β«Custom SIP Control for CFΒ». ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° InputControl, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²ΠΎΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π²Π²ΠΎΠ΄Π° SIP, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠ»Π°Π²Π° 6
ΠΡΠ°ΡΠΈΠΊΠ°
ΠΠ»Π°ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ Π² .NET Compact Framework ΠΎΠΏΠΈΡΠ°Π΅ΡΡΡ Π½Π° ΡΠ΅ ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ, ΡΡΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ .NET Framework. ΠΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ System.Drawing. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΈΠ³ΡΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π»ΠΈΠ½ΠΈΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠΌ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΠΎΠ³ΠΎ Ρ ΠΎΠ»ΡΡΠ° Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ ΡΠΎΡΠΌΡ ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π‘Π°ΠΌΡΠΌ Π³Π»Π°Π²Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ Graphics, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π³ΡΠ°ΡΠΈΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π³ΡΠ°ΡΠΈΠΊΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠ°ΠΊ Pen, Brush, Color, Rectangle, Line, Image.
ΠΠ»Π°ΡΡ Pen
ΠΠ»Π°ΡΡ Pen ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ°, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ ΠΏΡΡΠΌΡΠ΅ ΠΈ ΠΊΡΠΈΠ²ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΠ»Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ .NET Framework, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΠ΅ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Pen, .NET Compact Framework ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ². ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° Pen(Color) ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Pen(Color, Single) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠ²Π΅ΡΠ° ΠΈ ΡΠΈΡΠΈΠ½Ρ. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² .NET Compact Framework 2.0.
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 6.1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΡΠ΅Π² ΡΠΈΠ½Π΅Π³ΠΎ ΠΈ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ΅ΡΡΠ΅Π² ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π²Π΅ Π»ΠΈΠ½ΠΈΠΈ.
ΠΠΈΡΡΠΈΠ½Π³ 6.1private void Form1_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
// Π‘ΠΈΠ½Π΅Π΅ ΠΏΠ΅ΡΠΎ ΡΠΎΠ»ΡΠΈΠ½ΠΎΠΉ 1 ΠΏΠΈΠΊΡΠ΅Π»
Pen bluePen = new Pen(Color.Blue);
// ΠΡΠ°ΡΠ½ΠΎΠ΅ ΠΏΠ΅ΡΠΎ ΡΠΎΠ»ΡΠΈΠ½ΠΎΠΉ 5 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ²
Pen redFatPen = new Pen(Color.Red, 5);
g.DrawLine(bluePen, 10, 10, 230, 10);
g.DrawLine(redFatPen, 10, 20, 230, 20);
}
ΠΠ»Π°ΡΡ Brush
ΠΠ»Π°ΡΡ Brush ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΈΡΡΠ΅ΠΉ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³ΡΡΡ ΠΈ ΡΠ΅ΠΊΡΡ Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° .NET Compact Framework ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ»Π°ΡΡΡ SolidBrush ΠΈ TextureBrush. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΊΠ»Π°ΡΡ LinearGradientBrush, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΠ΅ ΡΠΈΠ³ΡΡΡ, Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠ»Π°ΡΡ SolidBrush
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° SolidBrush Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠ³ΡΡ. Π§ΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ²Π΅Ρ ΠΊΠΈΡΡΠΈ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ²Π΅Ρ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅ Color. Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 6.2 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π΅Π»Π΅Π½ΡΠΉ ΠΊΡΡΠ³ ΠΈ ΠΆΠ΅Π»ΡΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ.
ΠΠΈΡΡΠΈΠ½Π³ 6.2private void Form1_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΈΡΡΡ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°
SolidBrush myBrush = new SolidBrush(Color.Green);
// Π ΠΈΡΡΠ΅ΠΌ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΠΊΡΡΠ³
g.FillEllipse(myBrush, 10, 30, 30, 30);
// ΠΠ΅Π½ΡΠ΅ΠΌ ΡΠ²Π΅Ρ ΠΊΠΈΡΡΠΈ Π½Π° ΠΆΠ΅Π»ΡΡΠΉ
myBrush.Color = Color.Yellow;
// Π ΠΈΡΡΠ΅ΠΌ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ
g.FillRectangle(myBrush, 50, 30, 50, 25);
}
ΠΠ»Π°ΡΡ TextureBrush
ΠΠ»Π°ΡΡ TextureBrush ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΡΠ½ΡΡ ΠΊΠΈΡΡΡ. ΠΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΠ΅ΠΊΡΡΡΡΠ½Π°Ρ ΠΊΠΈΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ, Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡΡΡΠ½ΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΈΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΠ²Π°ΡΡΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ². Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 6.3 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΡΠ½ΠΎΠΉ ΠΊΠΈΡΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΡΠΎΡΡΠ°Π² Windows Mobile 2003.
ΠΠΈΡΡΠΈΠ½Π³ 6.3private void Form1_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
// Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠΈΡΡΠ½ΠΎΠΊ
Image myImage = new Bitmap(@"\Windows\alerts.bmp");
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΡΡΠ½ΡΡ ΠΊΠΈΡΡΡ TextureBrush
texture = new TextureBrush(myImage);
// Π ΠΈΡΡΠ΅ΠΌ ΡΠ»Π»ΠΈΠΏΡ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΡΠΈΡΡΠ½ΠΊΠΎΠΌ
g.FillEllipse(texture, 10, 60, 120, 120);
g.Dispose();
}
ΠΠΠΠΠΠΠΠΠ’Π°ΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ° TextureBrush, ΠΊΠ°ΠΊ Transform ΠΈ WrapMode, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² .NET Compact Framework 2.0.
ΠΠ»Π°ΡΡ Color
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΡΠ΅Π² ΠΈΠ»ΠΈ ΠΊΠΈΡΡΠ΅ΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ ΠΊΠ»Π°ΡΡ Color. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ²Π΅Ρ Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ, Π»ΠΈΠ±ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΡΠ²Π΅ΡΠ° Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ RGB. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 6.4.
ΠΠΈΡΡΠΈΠ½Π³ 6.4// ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ
Color redColor = Color.Red;
// ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² RGB
Color redColor2 = Color.FromArgb(255, 0, 0);
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½ Π΄Π²Π΅ ΠΊΡΠ°ΡΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ
g.DrawLine(new Pen(redColor), 10, 190, 100, 190);
g.DrawLine(new Pen(redColor2), 10, 195, 100, 195);
ΠΠ»Π°ΡΡ Font
ΠΠ»Π°ΡΡ Font ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ°. ΠΠ°ΠΊ Π½ΠΈ ΡΡΡΠ°Π½Π½ΠΎ, Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ, ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΌΡΡΠ°Π΅Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΠ· ΡΠ΅ΡΡΡΠ½Π°Π΄ΡΠ°ΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Π² .NET Compact Framework Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Font Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΡΠΈΡΡΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΡΡΠΈΠ»Ρ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 6.5.
ΠΠΈΡΡΠΈΠ½Π³ 6.5Font myFont = new Font("Tahoma", 9, FontStyle.Italic);
g.DrawString("ΠΠ°ΡΠΌΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ", myFont, myBrush, 14, 200);
ΠΠ»Π°ΡΡ Icon
ΠΠ±ΡΠ΅ΠΊΡ Icon ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ DrawIcon Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Ρ ΡΠ°Π½ΡΡΡΡΡΡ Π² ΡΠ΅ΡΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 6.6.
ΠΠΈΡΡΠΈΠ½Π³ 6.6Icon myIcon = new Icon(Assembly.GetExecutingAssembly().
GetManifestResourceStream("MyApp.Icon.ico"));
ΠΠ»Π°ΡΡ Bitmap
ΠΠ»Π°ΡΡ Bitmap ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΡΡΡΠΎΠ²ΡΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ Bitmap ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ° Stream, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Bitmap ΠΈΠ»ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Bitmap, ΡΠΊΠ°Π·Π°Π² ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ. Π Π°Π½Π΅Π΅ ΠΊΠ»Π°ΡΡ Bitmap ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΡΡΠ½ΠΎΠΉ ΠΊΠΈΡΡΠΈ. ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Image. Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 6.7 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΎΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΈΡΡΠΈ.
ΠΠΈΡΡΠΈΠ½Π³ 6.7// Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠΈΡΡΠ½ΠΎΠΊ
Bitmap myImage = new Bitmap(@"\Windows\alerts.bmp");
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΡΡΠ½ΡΡ ΠΊΠΈΡΡΡ
TextureBrush texture = new TextureBrush(myImage);
Π‘ΡΡΡΠΊΡΡΡΠ° Point
Π‘ΡΡΡΠΊΡΡΡΠ° Point ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ X ΠΈ Y Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ. Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ .NET Compact Framework ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Point, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ. Π‘ΡΡΡΠΊΡΡΡΠ° Point ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ DrawPolygon ΠΈ FillPolygon, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.