🗊Презентация Графика. Важные пространства имен

Нажмите для полного просмотра!
Графика. Важные пространства имен, слайд №1Графика. Важные пространства имен, слайд №2Графика. Важные пространства имен, слайд №3Графика. Важные пространства имен, слайд №4Графика. Важные пространства имен, слайд №5Графика. Важные пространства имен, слайд №6Графика. Важные пространства имен, слайд №7Графика. Важные пространства имен, слайд №8Графика. Важные пространства имен, слайд №9Графика. Важные пространства имен, слайд №10Графика. Важные пространства имен, слайд №11Графика. Важные пространства имен, слайд №12Графика. Важные пространства имен, слайд №13Графика. Важные пространства имен, слайд №14Графика. Важные пространства имен, слайд №15Графика. Важные пространства имен, слайд №16Графика. Важные пространства имен, слайд №17Графика. Важные пространства имен, слайд №18Графика. Важные пространства имен, слайд №19Графика. Важные пространства имен, слайд №20Графика. Важные пространства имен, слайд №21Графика. Важные пространства имен, слайд №22Графика. Важные пространства имен, слайд №23Графика. Важные пространства имен, слайд №24Графика. Важные пространства имен, слайд №25Графика. Важные пространства имен, слайд №26Графика. Важные пространства имен, слайд №27Графика. Важные пространства имен, слайд №28Графика. Важные пространства имен, слайд №29Графика. Важные пространства имен, слайд №30Графика. Важные пространства имен, слайд №31Графика. Важные пространства имен, слайд №32Графика. Важные пространства имен, слайд №33Графика. Важные пространства имен, слайд №34Графика. Важные пространства имен, слайд №35Графика. Важные пространства имен, слайд №36Графика. Важные пространства имен, слайд №37Графика. Важные пространства имен, слайд №38Графика. Важные пространства имен, слайд №39Графика. Важные пространства имен, слайд №40Графика. Важные пространства имен, слайд №41Графика. Важные пространства имен, слайд №42Графика. Важные пространства имен, слайд №43Графика. Важные пространства имен, слайд №44Графика. Важные пространства имен, слайд №45Графика. Важные пространства имен, слайд №46Графика. Важные пространства имен, слайд №47Графика. Важные пространства имен, слайд №48Графика. Важные пространства имен, слайд №49Графика. Важные пространства имен, слайд №50Графика. Важные пространства имен, слайд №51Графика. Важные пространства имен, слайд №52Графика. Важные пространства имен, слайд №53Графика. Важные пространства имен, слайд №54Графика. Важные пространства имен, слайд №55Графика. Важные пространства имен, слайд №56Графика. Важные пространства имен, слайд №57Графика. Важные пространства имен, слайд №58Графика. Важные пространства имен, слайд №59Графика. Важные пространства имен, слайд №60Графика. Важные пространства имен, слайд №61

Содержание

Вы можете ознакомиться и скачать презентацию на тему Графика. Важные пространства имен. Доклад-сообщение содержит 61 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Графика
GDI+
Описание слайда:
Графика GDI+

Слайд 2





Важные пространства имен
Описание слайда:
Важные пространства имен

Слайд 3





Типы System.Drawing (I)
Описание слайда:
Типы System.Drawing (I)

Слайд 4





Типы System.Drawing (II)
Описание слайда:
Типы System.Drawing (II)

Слайд 5





Перечисленения System.Drawing
Описание слайда:
Перечисленения System.Drawing

Слайд 6





Тип Point (PointF)
namespace DrawingUtilTypes
{
using System;
using System.Drawing;	// Это пространство имен нужно для работы с типами GDI+ 
public class UtilTypes
{
  public static int Main(string[] args)
  {
	Point pt = new Point(100, 72); // Создаем точку, а затем смещаем ее
	System.Console.WriteLine(pt);
	pt.Offset(20, 20);
	System.Console.WriteLine(pt);
	Point pt2 = pt; // Применяем перегруженные операторы Point
	if (pt = = pt2)	Console.WriteLine("Points are the same");
	else		Console.WriteLine("Different points");
	pt2.X = 4000; // Меняем значение координаты X для pt2
	// А теперь выводим информацию о координатах каждой точки: 
	Console.WriteLine("First point: {0}", pt.ToString());
	Console.WriteLine("Second point: {0}", pt2.ToString());
	return 0;
  }
 }
}
Описание слайда:
Тип Point (PointF) namespace DrawingUtilTypes { using System; using System.Drawing; // Это пространство имен нужно для работы с типами GDI+ public class UtilTypes { public static int Main(string[] args) { Point pt = new Point(100, 72); // Создаем точку, а затем смещаем ее System.Console.WriteLine(pt); pt.Offset(20, 20); System.Console.WriteLine(pt); Point pt2 = pt; // Применяем перегруженные операторы Point if (pt = = pt2) Console.WriteLine("Points are the same"); else Console.WriteLine("Different points"); pt2.X = 4000; // Меняем значение координаты X для pt2 // А теперь выводим информацию о координатах каждой точки: Console.WriteLine("First point: {0}", pt.ToString()); Console.WriteLine("Second point: {0}", pt2.ToString()); return 0; } } }

Слайд 7





Члены класса Point (PointF)
Описание слайда:
Члены класса Point (PointF)

Слайд 8





Члены класса Rectangle (RectangleF)
Описание слайда:
Члены класса Rectangle (RectangleF)

Слайд 9





Работа метода Contains()
public static int Main(string[] args)
{
	...
	Rectangle r1 = new Rectangle(0, 0, 100, 100);
	Point pt3 = new Point(101, 101);
		
	if (r1.Contains(pt3))
		Console.WriteLine("Point is within the rect!");
	else
		Console.WriteLine("Point is not within the rect!");
	// Теперь помещаем точку внутрь области прямоугольника
	pt3.X = 50;
	pt3.Y = 30;
	if (r1.Contains(pt3))
		Console.WriteLine("Point is within the rect!");
	else
		Console.WriteLine("Point is not within the rect!");
		
	return 0;
}
Описание слайда:
Работа метода Contains() public static int Main(string[] args) { ... Rectangle r1 = new Rectangle(0, 0, 100, 100); Point pt3 = new Point(101, 101); if (r1.Contains(pt3)) Console.WriteLine("Point is within the rect!"); else Console.WriteLine("Point is not within the rect!"); // Теперь помещаем точку внутрь области прямоугольника pt3.X = 50; pt3.Y = 30; if (r1.Contains(pt3)) Console.WriteLine("Point is within the rect!"); else Console.WriteLine("Point is not within the rect!"); return 0; }

Слайд 10





Члены класса Size (SizeF)
Описание слайда:
Члены класса Size (SizeF)

Слайд 11





Методы класса Region
Описание слайда:
Методы класса Region

Слайд 12





Сеансы вывода графики (1)
public class MainForm : Form
{
  public MainForm()
  {
	CenterToScreen();
	this.Text = "Basic Paint Form";
  }
  public static void Main(string[] args)
  {
	Application.Run(new MainForm());
  }
  protected override void OnPaint(PaintEventArgs e)
  {
	Graphics g = e.Graphics;
	g.DrawString("HelloGDI+", new Font("Times New Roman", 20), 
		new SolidBrush(Color.Black), 0, 0);
  }
}
Описание слайда:
Сеансы вывода графики (1) public class MainForm : Form { public MainForm() { CenterToScreen(); this.Text = "Basic Paint Form"; } public static void Main(string[] args) { Application.Run(new MainForm()); } protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString("HelloGDI+", new Font("Times New Roman", 20), new SolidBrush(Color.Black), 0, 0); } }

Слайд 13





Сеансы вывода графики (вариант 2)
public class MainForm : Form
{
  public MainForm()
  {
	...
	// Добавляем обработчик события
       this.Paint += 
       new System.Windows.Forms.PaintEventHandler(MainForm_Paint);
  }
  // Обратите внимание на сигнатуру обработчика событий
  public void MainForm_Paint( object sender, PaintEventArgs e )
  {
	Graphics g = e.Graphics;
		...
  }
  public static void Main(string[] args)
  {
	Application.Run(new MainForm());
  }
}
Описание слайда:
Сеансы вывода графики (вариант 2) public class MainForm : Form { public MainForm() { ... // Добавляем обработчик события this.Paint += new System.Windows.Forms.PaintEventHandler(MainForm_Paint); } // Обратите внимание на сигнатуру обработчика событий public void MainForm_Paint( object sender, PaintEventArgs e ) { Graphics g = e.Graphics; ... } public static void Main(string[] args) { Application.Run(new MainForm()); } }

Слайд 14





Как сделать клиентскую область вашего приложения недействительной
public class MainForm : Form
{
...
	private void MainForm_Paint(object sender, PaintEventArgs e)
	{
		Graphics g = g.Graphics;
		// Логика для вывода изображения
		...
	}
	private void GetNewBitmap()
	{
 	 // Выводим окно диалога и получаем выбранное изображение 
	...
	// А теперь перерисовываем клиентскую часть формы
	Invalidate();
	}
}
Описание слайда:
Как сделать клиентскую область вашего приложения недействительной public class MainForm : Form { ... private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = g.Graphics; // Логика для вывода изображения ... } private void GetNewBitmap() { // Выводим окно диалога и получаем выбранное изображение ... // А теперь перерисовываем клиентскую часть формы Invalidate(); } }

Слайд 15





Указание области перерисовки
   private void UpdateUpperArea()
  {
      	Rectangle myRect = new Rectangle(0,0,75,150); 
 	Invalidate(myRect);
   }
Описание слайда:
Указание области перерисовки private void UpdateUpperArea() { Rectangle myRect = new Rectangle(0,0,75,150); Invalidate(myRect); }

Слайд 16





Вывод графики вне события Paint
private void NainForm_MouseDown(object sender, MouseEventArgs e)
{
	// Получаем объект Graphics
	Graphics g = Graphics.FromHwnd(this.Handle);

        // По щелчку мыши рисуем кружок 
	g.DrawEllipse(new Pen(Color.Green), e.X, e.Y, 10, 10); 

}
Описание слайда:
Вывод графики вне события Paint private void NainForm_MouseDown(object sender, MouseEventArgs e) { // Получаем объект Graphics Graphics g = Graphics.FromHwnd(this.Handle); // По щелчку мыши рисуем кружок g.DrawEllipse(new Pen(Color.Green), e.X, e.Y, 10, 10); }

Слайд 17





«Правильный» вывод графики
public class MainForm : System.Windows.Forms.Form
{
  // Коллекция для хранения координат всех кружков
  private ArrayList myPts = new ArrayList();
  ...
  private void NainForm_MouseDown(object sender, MouseEventArgs e)
  {
	// А теперь мы просто добавляем координаты указателя при щелчке 
	// в коллекцию и вызываем Invalidate() 
	myPts.Add(new Point(e.X, e.Y));
	Invalidate();
  }
   private void MainForm_paint(object sender, PaintEventargs e)
   {
 	Graphics g = e.Graphics;
	g.DrawString("Hello CDI+", new Font("Times New Roman", 20),
			new SolidBrush(Color,Black), 0, 0);
	// Выводим все точки
	foreach(Point p in myPts)
		g.DrawEllipse(new Pen(Color.Green), p.X, p.Y, 10, 10);
  }
}
Описание слайда:
«Правильный» вывод графики public class MainForm : System.Windows.Forms.Form { // Коллекция для хранения координат всех кружков private ArrayList myPts = new ArrayList(); ... private void NainForm_MouseDown(object sender, MouseEventArgs e) { // А теперь мы просто добавляем координаты указателя при щелчке // в коллекцию и вызываем Invalidate() myPts.Add(new Point(e.X, e.Y)); Invalidate(); } private void MainForm_paint(object sender, PaintEventargs e) { Graphics g = e.Graphics; g.DrawString("Hello CDI+", new Font("Times New Roman", 20), new SolidBrush(Color,Black), 0, 0); // Выводим все точки foreach(Point p in myPts) g.DrawEllipse(new Pen(Color.Green), p.X, p.Y, 10, 10); } }

Слайд 18





Возможности класса Graphics
FromHdc(), FromHwnd(), FromImage() – статические методы, обеспечивают возможность получения объекта Graphics из элемента управления или изображения
Clear() – заполняет объект Graphics выбранным цветом, удаляя предыдущее содержимое
MeasureString() – возвращает структуру Size, представляющую границы блока текста
Описание слайда:
Возможности класса Graphics FromHdc(), FromHwnd(), FromImage() – статические методы, обеспечивают возможность получения объекта Graphics из элемента управления или изображения Clear() – заполняет объект Graphics выбранным цветом, удаляя предыдущее содержимое MeasureString() – возвращает структуру Size, представляющую границы блока текста

Слайд 19





Методы рисования класса Graphics
DrawArc(), DrawBezier(), DrawBeziers(), DrawCurve(), DrawEllipse(), DrawIcon(), DrawLine(), DrawLines(), DrawPie(), DrawPath(), DrawRectangle(), DrawRectangles(), DrawString() – все это методы вывода изображений
FillEllipse(), FillPath(), FillPie(), FillPolygon(), FillRectangle() – заполнение внутренних областей объектов
Описание слайда:
Методы рисования класса Graphics DrawArc(), DrawBezier(), DrawBeziers(), DrawCurve(), DrawEllipse(), DrawIcon(), DrawLine(), DrawLines(), DrawPie(), DrawPath(), DrawRectangle(), DrawRectangles(), DrawString() – все это методы вывода изображений FillEllipse(), FillPath(), FillPie(), FillPolygon(), FillRectangle() – заполнение внутренних областей объектов

Слайд 20





Свойства класса Graphics
Clip, Graphics, clipBounds, VisibleClipBounds, IsClipEmpty, IsVisibleClipEmpty – позволяют настроить параметры отсечения для объекта
Transform – для проведения преобразований координат
PageUnit, PageScale, DpiX, DpiY – задают единицы измерения
SmoothingMode, PixelOffsetMode, TextRenderingHint – задают плавность пере-ходов для геометрических объектов и текста
CompositingMode, CompositingQuality – будет ли графический объект выводиться над фоном или будет происходить мешение с фоном
InterpolationMode – определяет интерполяцию между соседними точками
Описание слайда:
Свойства класса Graphics Clip, Graphics, clipBounds, VisibleClipBounds, IsClipEmpty, IsVisibleClipEmpty – позволяют настроить параметры отсечения для объекта Transform – для проведения преобразований координат PageUnit, PageScale, DpiX, DpiY – задают единицы измерения SmoothingMode, PixelOffsetMode, TextRenderingHint – задают плавность пере-ходов для геометрических объектов и текста CompositingMode, CompositingQuality – будет ли графический объект выводиться над фоном или будет происходить мешение с фоном InterpolationMode – определяет интерполяцию между соседними точками

Слайд 21





Система координат по умолчанию
Описание слайда:
Система координат по умолчанию

Слайд 22





Применение других единиц измерения
Описание слайда:
Применение других единиц измерения

Слайд 23





Смена начала координат
private void MainForm_Paint(object sender, PaintEventsArgs e)
{
	// Настраиваем единицы измерения
	e.Graphics.PageUnit = GraphicsUnit.Point;

	// Настраиваем новую точку отсчета для системы координат 
	e.Graphics.TranslateTransform(100, 100);
	// Код для вывода прямоугольника остается прежним
	e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 
             0, 0, 100, 100);
}
Описание слайда:
Смена начала координат private void MainForm_Paint(object sender, PaintEventsArgs e) { // Настраиваем единицы измерения e.Graphics.PageUnit = GraphicsUnit.Point; // Настраиваем новую точку отсчета для системы координат e.Graphics.TranslateTransform(100, 100); // Код для вывода прямоугольника остается прежним e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0, 0, 100, 100); }

Слайд 24





Работа с цветом
// Один из множества  предопределенных цветов
Color c = Color.PapayaWhip
// Названия цветов – статические поля
Описание слайда:
Работа с цветом // Один из множества предопределенных цветов Color c = Color.PapayaWhip // Названия цветов – статические поля

Слайд 25





Члены класса Color
Описание слайда:
Члены класса Color

Слайд 26





Возможности класса ColorDialog
public class ColorDlgForm : System.Windows.Forms.Form
{
	// Работаем с классом ColorDialog
	private System.Windows.Forms.ColorDialog colorDlg;
	public ColorDlgForm()
	{
		colorDlg = new System.Windows.Forms.ColorDialog();
		Text = "Click on me to change the color";
		this.MouseUp += new MouseEventHandler(this.ColorDlgForm_MouseUp);
	}
...
	private void ColorDlgForm_MouseUp(object sender, MouseEventArgs e)
	{
		if (colorDlg.ShowDialog() != DialogResult.Cancel)
		{
			currColor = colorDlg.Color;
			this.BackColor = currColor;
			// Выводим информацию о выбранном цвете
			string strARGB = colorDlg.Color.ToString();
			MessageBox.Show(strARGB, "Color is:");
		}
	}
}
Описание слайда:
Возможности класса ColorDialog public class ColorDlgForm : System.Windows.Forms.Form { // Работаем с классом ColorDialog private System.Windows.Forms.ColorDialog colorDlg; public ColorDlgForm() { colorDlg = new System.Windows.Forms.ColorDialog(); Text = "Click on me to change the color"; this.MouseUp += new MouseEventHandler(this.ColorDlgForm_MouseUp); } ... private void ColorDlgForm_MouseUp(object sender, MouseEventArgs e) { if (colorDlg.ShowDialog() != DialogResult.Cancel) { currColor = colorDlg.Color; this.BackColor = currColor; // Выводим информацию о выбранном цвете string strARGB = colorDlg.Color.ToString(); MessageBox.Show(strARGB, "Color is:"); } } }

Слайд 27





Работа со шрифтами
// Создаем объект Font, указывая имя шрифта и его размер
Font f = new Font("Times New Roman", 12)

// Создаем объект Font, указывая имя, размер и стиль
Font f2 = new Font("Arial", 20, 
FontStyle.Bold | FontStyle.Underline)

// public void DrawString(String, Font, Brush, Point)
g.DrawString("My string", new Font("Arial",24), 
new SolidBrush(Color.Black), new Point (0,0));

// public void DrawString(String, Font, Brush, float, float)
g.DrawString("Another string", f2, Brushes.Black,10,30);
Описание слайда:
Работа со шрифтами // Создаем объект Font, указывая имя шрифта и его размер Font f = new Font("Times New Roman", 12) // Создаем объект Font, указывая имя, размер и стиль Font f2 = new Font("Arial", 20, FontStyle.Bold | FontStyle.Underline) // public void DrawString(String, Font, Brush, Point) g.DrawString("My string", new Font("Arial",24), new SolidBrush(Color.Black), new Point (0,0)); // public void DrawString(String, Font, Brush, float, float) g.DrawString("Another string", f2, Brushes.Black,10,30);

Слайд 28





Семейства шрифтов
// Создаем объект FontFamily 
FontFamily myFamily = new FontFamily("Verdana");
// Передаем созданный нами объект как параметр
Font myFont = new Font(myFamily, 12);
e.Grapgics,DrawString("Hello",myFont,Brushes.Blue,10,10)
Описание слайда:
Семейства шрифтов // Создаем объект FontFamily FontFamily myFamily = new FontFamily("Verdana"); // Передаем созданный нами объект как параметр Font myFont = new Font(myFamily, 12); e.Grapgics,DrawString("Hello",myFont,Brushes.Blue,10,10)

Слайд 29





Приложение с возможностью выбора шрифта
public class FontForm: System.Windows.Forms.Form
{
	private Timer timer;
	private int swellValue;
	// Этот шрифт будет использоваться по умолчанию:
	private string fontFace = "WingDings"; 
	public FontForm()
	{
  	// Считаем, что система меню создана при помощи  Visual Studio.IDE 
		InitializeComponents();
		timer = new Timer();
		Text = "Font App";
		Width = 425;	Height = 150;
		BackColor = Color.Honeydew;
		CenterToScreen();

		// Настраиваем таймер
		timer.Enabled = true;	timer.Interval = 100;
		timer.Tick += new EventHandler(FontForm_OnTimer);
	}
}
Описание слайда:
Приложение с возможностью выбора шрифта public class FontForm: System.Windows.Forms.Form { private Timer timer; private int swellValue; // Этот шрифт будет использоваться по умолчанию: private string fontFace = "WingDings"; public FontForm() { // Считаем, что система меню создана при помощи Visual Studio.IDE InitializeComponents(); timer = new Timer(); Text = "Font App"; Width = 425; Height = 150; BackColor = Color.Honeydew; CenterToScreen(); // Настраиваем таймер timer.Enabled = true; timer.Interval = 100; timer.Tick += new EventHandler(FontForm_OnTimer); } }

Слайд 30





Приложение с возможностью выбора шрифта
private void FontForm_OnTimer(object sender, EventArgs e)
{
        // При каждом «тике» размер шрифта увеличивается на 5
		swellValue += 5;

         // При достижении максимального размера уменьшаем размер до 0
		if(swellValue >= 50)
				swellValue = 0;

        // Перерисовываем нужную нам прямоугольную область
		Invalidate(new Rectangle(0, 0, ClientRectangle.Width, 100));
	}
Описание слайда:
Приложение с возможностью выбора шрифта private void FontForm_OnTimer(object sender, EventArgs e) { // При каждом «тике» размер шрифта увеличивается на 5 swellValue += 5; // При достижении максимального размера уменьшаем размер до 0 if(swellValue >= 50) swellValue = 0; // Перерисовываем нужную нам прямоугольную область Invalidate(new Rectangle(0, 0, ClientRectangle.Width, 100)); }

Слайд 31





Приложение с возможностью выбора шрифта
private void FontForm_Paint(object sender, PaintEventsArgs e)
{
	Graphics g = e.Graphics;

// Размер шрифта будет меняться между 12 и 62 в зависимости от текущего значения  swellValue 
	Font theFont = new Font(fontFace, 12 + swellValue);

	string message = "Hello GDI+";

	// Выводим сообщение по центру формы
	float windowCenter = this.DisplayRectangle.Width/2;
	SizeF stringSize = g.MeasureString(message, theFont);
	float startPos = windowCenter - (stringSize.Width/2);

	g.DrawString(message, theFont, new SolidBrush(Color.Blue), startPos, 10);
}
Описание слайда:
Приложение с возможностью выбора шрифта private void FontForm_Paint(object sender, PaintEventsArgs e) { Graphics g = e.Graphics; // Размер шрифта будет меняться между 12 и 62 в зависимости от текущего значения swellValue Font theFont = new Font(fontFace, 12 + swellValue); string message = "Hello GDI+"; // Выводим сообщение по центру формы float windowCenter = this.DisplayRectangle.Width/2; SizeF stringSize = g.MeasureString(message, theFont); float startPos = windowCenter - (stringSize.Width/2); g.DrawString(message, theFont, new SolidBrush(Color.Blue), startPos, 10); }

Слайд 32





Обработка команд меню
private void FormatFont_Clicked(object sender, EventArgs e) 
	{
		cmiFontChecked.Checked = false;

		MenuItem miClicked = (MenuItem)sender;
		fontFace = miClicked.Text.Remove(0,1);
		
		if (fontFace == "Arial") 	
					cmiFontChecked = cmiArial;
		else if (fontFace == "Times New Roman") 	
					cmiFontChecked = cmiTimesNewRoman;
		else if (fontFace == "WingDings")
					cmiFontChecked = cmiWingDings;
	
		cmiFontChecked.Checked = true;
		Invalidate();
	}
Описание слайда:
Обработка команд меню private void FormatFont_Clicked(object sender, EventArgs e) { cmiFontChecked.Checked = false; MenuItem miClicked = (MenuItem)sender; fontFace = miClicked.Text.Remove(0,1); if (fontFace == "Arial") cmiFontChecked = cmiArial; else if (fontFace == "Times New Roman") cmiFontChecked = cmiTimesNewRoman; else if (fontFace == "WingDings") cmiFontChecked = cmiWingDings; cmiFontChecked.Checked = true; Invalidate(); }

Слайд 33





Информация об установленных шрифтах
public class FontForm : System.Windows.Forms.Form
{
  // Для хранения списка шрифтов
  private string installedFonts;

  // Обработчик события меню для вывода списка установленных в системе шрифтов 
  private void mnuConfigShowFonts_Clicked(object sender, EventArgs e)
  {
     	InstalledFontCollection fonts = new InstalledFontCollection();
	for(int i=0; i < fonts.Families.Lenght; i++)
	{
		installedFonts += fonts.Families[i].Name + " ";
	}

	// На этот раз нам потребуется перерисовать всю клиентскую область
	// формы, поскольку вывод полученных значений будет производиться в
	// нижнюю часть  формы 
	Invalidate();
   }
...
}
Описание слайда:
Информация об установленных шрифтах public class FontForm : System.Windows.Forms.Form { // Для хранения списка шрифтов private string installedFonts; // Обработчик события меню для вывода списка установленных в системе шрифтов private void mnuConfigShowFonts_Clicked(object sender, EventArgs e) { InstalledFontCollection fonts = new InstalledFontCollection(); for(int i=0; i < fonts.Families.Lenght; i++) { installedFonts += fonts.Families[i].Name + " "; } // На этот раз нам потребуется перерисовать всю клиентскую область // формы, поскольку вывод полученных значений будет производиться в // нижнюю часть формы Invalidate(); } ... }

Слайд 34





Вывод информации в нижнюю часть формы
private void FontForm_Paint(object sender, PaintEventArgs e)
{
	Graphics g = g.Graphics;
	Font theFont = new Font(fontFace, 12 + swellValue);
	string message = "Hello GDI+";

	// Выводим сообщение "Hello GDI+" по центру формы 
	float windowCenter = this.DisplayRectangle.Width/2;
	SizeF stringSize = g.MeasureString(message, theFont);
	float startPos = windowCenter - (stringSize.Width/2);
     	g.DrawString(message, theFont, new SolidBrush(Color.Blue), 
		startPos, 10);

	// Выводим информацию об установленных шрифтах под занятой областью 
	Rectangle myRect = new Rectangle(0, 100, ClientRectangle.Width, 
						ClientRectangle.Height);

	// Будем рисовать в этой области белым по черному
	g.FillRectangle(newSolidBrush(Color.Black), myRect);
	g.DrawString(installedFonts, new Font("Arial", 12), 
				new SolidBrush(Color.White), myRect);
}
Описание слайда:
Вывод информации в нижнюю часть формы private void FontForm_Paint(object sender, PaintEventArgs e) { Graphics g = g.Graphics; Font theFont = new Font(fontFace, 12 + swellValue); string message = "Hello GDI+"; // Выводим сообщение "Hello GDI+" по центру формы float windowCenter = this.DisplayRectangle.Width/2; SizeF stringSize = g.MeasureString(message, theFont); float startPos = windowCenter - (stringSize.Width/2); g.DrawString(message, theFont, new SolidBrush(Color.Blue), startPos, 10); // Выводим информацию об установленных шрифтах под занятой областью Rectangle myRect = new Rectangle(0, 100, ClientRectangle.Width, ClientRectangle.Height); // Будем рисовать в этой области белым по черному g.FillRectangle(newSolidBrush(Color.Black), myRect); g.DrawString(installedFonts, new Font("Arial", 12), new SolidBrush(Color.White), myRect); }

Слайд 35





Обработка события Resize

private void FontForm_Resize(object sender, System.EventArgs e)
{
	Rectangle myRect = new Rectangle(0, 100, 
	ClientRectangle.Width, ClientRectangle.Height); 
	Invalidate(myRect);
}
Описание слайда:
Обработка события Resize private void FontForm_Resize(object sender, System.EventArgs e) { Rectangle myRect = new Rectangle(0, 100, ClientRectangle.Width, ClientRectangle.Height); Invalidate(myRect); }

Слайд 36





Класс FontDialog
public class FontDlgForm : System.Windows.Forms.Form
{
   private System.Windows.Forms.FontDialog fontDlg;
   private Font currFont;
   
   // Обработчик события Paint
   private void FontDlgForm_Paint(object sender, PaintEventArgs e)
   {
 	Graphics g = e.Graphics;
	g.DrawString("Testing...", currFont, new SolidBrush(Color.Black), 0, 0);
   }	
   
   public FontDlgForm()
   {
	CenterToScreen();
	fontDlg = new System.Windows.Forms.FontDialog();
	fontDlg.ShowHelp = true;
	Text = "Click on me to change the font";
	currFont = new Font("Times New Roman", 12);
	...
   }

  // Обработчик события MouseUp
  private void FontDlgForm_MouseUp(object sender, MouseEventArgs e)
  {
	if (fontDlg.ShowDialog() != DialogResult.Cancel)
	{
		currFont = fontDlg.Font;
		Invalidate();
	}
  }
}
Описание слайда:
Класс FontDialog public class FontDlgForm : System.Windows.Forms.Form { private System.Windows.Forms.FontDialog fontDlg; private Font currFont; // Обработчик события Paint private void FontDlgForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString("Testing...", currFont, new SolidBrush(Color.Black), 0, 0); } public FontDlgForm() { CenterToScreen(); fontDlg = new System.Windows.Forms.FontDialog(); fontDlg.ShowHelp = true; Text = "Click on me to change the font"; currFont = new Font("Times New Roman", 12); ... } // Обработчик события MouseUp private void FontDlgForm_MouseUp(object sender, MouseEventArgs e) { if (fontDlg.ShowDialog() != DialogResult.Cancel) { currFont = fontDlg.Font; Invalidate(); } } }

Слайд 37





Классы System.Drawing.Drawing2D
Описание слайда:
Классы System.Drawing.Drawing2D

Слайд 38





Перечисления System.Drawing.Drawing2D
Описание слайда:
Перечисления System.Drawing.Drawing2D

Слайд 39





Определение качества вывода графического объекта
private void MainForm_Paint(object sender, PaintEventArgs e)
{
  Graphics g = e.Graphics;
 
  // Устанавливаем качество вывода графического объекта
  g.SmoothingMode = SmoothingMode.AntiAlias;
  //  Еще лучше   – HighQuality
  //  Еще быстрее - HighSpeed 
}
Описание слайда:
Определение качества вывода графического объекта private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; // Устанавливаем качество вывода графического объекта g.SmoothingMode = SmoothingMode.AntiAlias; // Еще лучше – HighQuality // Еще быстрее - HighSpeed }

Слайд 40





Рисование пером
Описание слайда:
Рисование пером

Слайд 41





Некоторые свойства класса Pen
Описание слайда:
Некоторые свойства класса Pen

Слайд 42





Работа с перьями
private void MainForm_Paint(object sender, PaintEventArgs e)
{
  Graphics g = e.Graphics;
	
  // Создаем большое перо синего цвета
  Pen bluePen = new Pen(Color.Blue, 20);

  // Создаем еще одно перо при помощи заготовок из коллекции Pens 
  Pen pen2 = Pens.Firebrick;

  // Выводим при помощи созданных нами перьев геометрические фигуры 
  g.DrawEllipse(bluePen, 10, 10, 100, 100);
  g.DrawLine(pen2, 10, 130, 110, 130);
  g.DrawPie(Pens.Black, 150, 10, 120, 150, 90, 80);

  // Выводим многоугольник пурпурного цвета
  Pen pen3 = new Pen(Color.Purple, 5);
  pen3.DashStyle = DashStyle.DashDotDot;
  g.DrawPolygon(pen3, new Point[] {	new Point (30, 140), new Point(265, 200),	
				new Point(100, 225), new Point(190, 190),
				new Point(50, 330),  new Point(20, 180),} );

  // Добавляем прямоугольник со вписанным нами текстом
  Rectangle r = new Rectangle(150, 10, 130, 60);
  g.DrawRectangle(Pens.Blue, r);
  g.DrawString("Hello out there...How are ya?", 	new Font("Arial", 12), Brushes.Black, r);
}
Описание слайда:
Работа с перьями private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; // Создаем большое перо синего цвета Pen bluePen = new Pen(Color.Blue, 20); // Создаем еще одно перо при помощи заготовок из коллекции Pens Pen pen2 = Pens.Firebrick; // Выводим при помощи созданных нами перьев геометрические фигуры g.DrawEllipse(bluePen, 10, 10, 100, 100); g.DrawLine(pen2, 10, 130, 110, 130); g.DrawPie(Pens.Black, 150, 10, 120, 150, 90, 80); // Выводим многоугольник пурпурного цвета Pen pen3 = new Pen(Color.Purple, 5); pen3.DashStyle = DashStyle.DashDotDot; g.DrawPolygon(pen3, new Point[] { new Point (30, 140), new Point(265, 200), new Point(100, 225), new Point(190, 190), new Point(50, 330), new Point(20, 180),} ); // Добавляем прямоугольник со вписанным нами текстом Rectangle r = new Rectangle(150, 10, 130, 60); g.DrawRectangle(Pens.Blue, r); g.DrawString("Hello out there...How are ya?", new Font("Arial", 12), Brushes.Black, r); }

Слайд 43





Работаем с наконечниками перьев
(Перечисление LineCap)
Описание слайда:
Работаем с наконечниками перьев (Перечисление LineCap)

Слайд 44





Наконечники перьев
private void MainForm_Paint (object sender, PaintEventArgs e)
{
  Graphics g = e.Graphics;
  Pen thePen = new Pen(Color.Black, 10);
  int yOffSet = 10;

  // Получаем все значения перечисления LineCap
  Array obj = Enum.GetValues(typeof(LineCap));

  // Выводим линию с использованием значения из LineCap
  for(int x = 0; x < obj.Length; x++)
  {
	// Настраиваем "наконечник" пера
	LineCap temp = (LineCap)obj.GetValue(x);
	thePen.StartCap = temp;
	thePen.EndCap = temp;

	// Выводим имя значения перечисления
	g.DrawString(temp.ToString(), new Font("Times New Roman", 10), 
				new SolidBrush(Color.Black), 0, yOffSet);

	// Выводим линию с выбранным наконечником
	g.DrawLine(thePen, 100, yOffSet, Width - 50, yOffSet);
	yOffSet += 40;
  }
}
Описание слайда:
Наконечники перьев private void MainForm_Paint (object sender, PaintEventArgs e) { Graphics g = e.Graphics; Pen thePen = new Pen(Color.Black, 10); int yOffSet = 10; // Получаем все значения перечисления LineCap Array obj = Enum.GetValues(typeof(LineCap)); // Выводим линию с использованием значения из LineCap for(int x = 0; x < obj.Length; x++) { // Настраиваем "наконечник" пера LineCap temp = (LineCap)obj.GetValue(x); thePen.StartCap = temp; thePen.EndCap = temp; // Выводим имя значения перечисления g.DrawString(temp.ToString(), new Font("Times New Roman", 10), new SolidBrush(Color.Black), 0, yOffSet); // Выводим линию с выбранным наконечником g.DrawLine(thePen, 100, yOffSet, Width - 50, yOffSet); yOffSet += 40; } }

Слайд 45





Работаем с кистью
Описание слайда:
Работаем с кистью

Слайд 46





Работа с кистью
private void MainForm_Paint(object sender, PaintEventArgs e)
{
	Graphics g = e.Graphics;

	// Создаем "плотную кисть" — SolidBrush — синего цвета
	SolidBrush blueBrush = new SolidBrush(Color.Blue);

	// Создаем еще одну кисть при помощи заранее готовой коллекции Brushes 
	SolidBrush pen2 = (SolidBrush)Brushes.Firebrick;

	// Закрашиваем этими кистями геометрические фигуры
	g.FillEllipse(blueBrush, 10, 10, 100, 100);
	g.FillPie(Brushes.Black, 150, 10, 120, 150, 90, 80);

	// Закрашиваем многоугольник пурпурным цветом
	SolidBrush brush3 = new SolidBrush(Color.Purple);

	g.FillPolygon(brush3, new Point[]{ new Point(30, 140), new Point(265, 200),
			new Point(100, 225), new Point(190, 190),
			new Point(50, 330),	new Point(20, 180)} );

	// и прямоугольник с текстом — синим:
	Rectangle r = new Rectangle(150, 10, 130, 60);
	g.FillRectangle(Brushes.Blue, r);
	g.DrawString("Hello out there...Now are ya?",
			new Font("Arial", 12), Brushes.White, r);
}
Описание слайда:
Работа с кистью private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; // Создаем "плотную кисть" — SolidBrush — синего цвета SolidBrush blueBrush = new SolidBrush(Color.Blue); // Создаем еще одну кисть при помощи заранее готовой коллекции Brushes SolidBrush pen2 = (SolidBrush)Brushes.Firebrick; // Закрашиваем этими кистями геометрические фигуры g.FillEllipse(blueBrush, 10, 10, 100, 100); g.FillPie(Brushes.Black, 150, 10, 120, 150, 90, 80); // Закрашиваем многоугольник пурпурным цветом SolidBrush brush3 = new SolidBrush(Color.Purple); g.FillPolygon(brush3, new Point[]{ new Point(30, 140), new Point(265, 200), new Point(100, 225), new Point(190, 190), new Point(50, 330), new Point(20, 180)} ); // и прямоугольник с текстом — синим: Rectangle r = new Rectangle(150, 10, 130, 60); g.FillRectangle(Brushes.Blue, r); g.DrawString("Hello out there...Now are ya?", new Font("Arial", 12), Brushes.White, r); }

Слайд 47





Работаем со штриховыми кистями
(Перечисление HatchStyle)
Описание слайда:
Работаем со штриховыми кистями (Перечисление HatchStyle)

Слайд 48





Работаем со штриховыми кистями
private void MainForm_Paint(object sender, PaintEventArgs e)
{
  Graphics g = e.Graphics;
  int yOffSet = 10;

  // Помещаем в массив все члены перечисления HatchStyle
  Array obj = Enum.GetValues(typeof(HatchStyle));

  // Выводим эллипс со штриховкой, соответствующей членам перечисления HatchStyle 
  // с 1 по 10 
  for(int x =0; x < 10; x++)
  {
	// Настраиваем кисть
	HatchStyle temp = (HatchStyle)obj.GetValue(x);
	HatchBrush theBrush = new HatchBrush(temp, Color.White, Color.Black);

	// Выводим имя каждого из значений перечисления
	g.DrawString(temp.ToString(), new Font("Times New Roman", 10), 
			new SolidBrush (Color.Black), 0, yOffSet);

	// Закрашиваем эллипс штриховой кистью
	g.FillEllipse(theBrush, 150, yOffSet, 200, 25);
	yOffSet += 40;
   }
}
Описание слайда:
Работаем со штриховыми кистями private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; int yOffSet = 10; // Помещаем в массив все члены перечисления HatchStyle Array obj = Enum.GetValues(typeof(HatchStyle)); // Выводим эллипс со штриховкой, соответствующей членам перечисления HatchStyle // с 1 по 10 for(int x =0; x < 10; x++) { // Настраиваем кисть HatchStyle temp = (HatchStyle)obj.GetValue(x); HatchBrush theBrush = new HatchBrush(temp, Color.White, Color.Black); // Выводим имя каждого из значений перечисления g.DrawString(temp.ToString(), new Font("Times New Roman", 10), new SolidBrush (Color.Black), 0, yOffSet); // Закрашиваем эллипс штриховой кистью g.FillEllipse(theBrush, 150, yOffSet, 200, 25); yOffSet += 40; } }

Слайд 49





Работаем с текстурными кистями
public class MainForm : System.Windows.Forms.Form
{
  // Потребуются переменные типа Brush для загрузки изображений 
 	private Brush texturedTextBrush;
	private Vrush texturedBGroundBrush;

  public MainForm()
  {
	...
	// Загружаем изображение для текстуры формы
	Image bGroundBrushImage = new Bitmap(Coluds.bmp");
	texturedBGrounBrush = new TextureBrush(bBroundBrushImage);

	// Загружаем изображение для текстуры теста
	Image textBrushImage = new Bitmap("Soap Bubbles.bmp");
	texturedTextBrush = new TextureBrush(textBrushImage);
  }
...
}
Описание слайда:
Работаем с текстурными кистями public class MainForm : System.Windows.Forms.Form { // Потребуются переменные типа Brush для загрузки изображений private Brush texturedTextBrush; private Vrush texturedBGroundBrush; public MainForm() { ... // Загружаем изображение для текстуры формы Image bGroundBrushImage = new Bitmap(Coluds.bmp"); texturedBGrounBrush = new TextureBrush(bBroundBrushImage); // Загружаем изображение для текстуры теста Image textBrushImage = new Bitmap("Soap Bubbles.bmp"); texturedTextBrush = new TextureBrush(textBrushImage); } ... }

Слайд 50





Используем текстурные кисти
private void MainForm_Paint(object sender, PaintEventArgs e)
{
  Graphics g = e.Graphics;
  Rectangle r = ClientRectangle;

  // Выводим облака на форме
  g.FillRectangle(texturedBGroundBrush, r);

  // Текст должен быть большим — чтобы можно было разглядеть текстуру 
  g.DrawString ("Bitmaps as brushes! Way cool...",
   new Font("Arial", 60, FontStyle.Bold | FontStyle.Italic), 
			texturedTextBrush, r);
}
Описание слайда:
Используем текстурные кисти private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; Rectangle r = ClientRectangle; // Выводим облака на форме g.FillRectangle(texturedBGroundBrush, r); // Текст должен быть большим — чтобы можно было разглядеть текстуру g.DrawString ("Bitmaps as brushes! Way cool...", new Font("Arial", 60, FontStyle.Bold | FontStyle.Italic), texturedTextBrush, r); }

Слайд 51





Работа с градиентными кистями
private void MainForm_Paint(object sender, PaintEventArgs e)
{
  Graphics g = e.Graphics;
  Rectangle r = new Rectangle(10, 10, 100, 100);

  LinearGradientBrush theBrush = null;
  int yOffSet = 10;

  // Получаем все значения перечисления LinearGradientMode 
  Array obj = Enum.GetValues(typeof(LinearGradientMode));

  // Выводим прямоугольник, используя значения LinearGradientMode 
  for(int x = 0; x < obj.Length; x++)
  {
	// Настраиваем кисть
	LinearGradientMode temp = (LinearGradientMode)obj.GetValue(x);
	theBrush = new LinearGradientBrush(r, Color.Red, Color.Blue, temp);

	// Выводим имя значения перечисления
	g.DrawString(temp.ToString(), new Font("Times New Roman", 10), 
			new SolidBrush(Color.Black), 0, yOffSet);
			
	// Заполняем прямоугольник при помощи градиентной кисти 
	g.FillRectangle(theBrush, 150, yOffSet, 200, 50);
	yOffSet += 80;
  }
}
Описание слайда:
Работа с градиентными кистями private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; Rectangle r = new Rectangle(10, 10, 100, 100); LinearGradientBrush theBrush = null; int yOffSet = 10; // Получаем все значения перечисления LinearGradientMode Array obj = Enum.GetValues(typeof(LinearGradientMode)); // Выводим прямоугольник, используя значения LinearGradientMode for(int x = 0; x < obj.Length; x++) { // Настраиваем кисть LinearGradientMode temp = (LinearGradientMode)obj.GetValue(x); theBrush = new LinearGradientBrush(r, Color.Red, Color.Blue, temp); // Выводим имя значения перечисления g.DrawString(temp.ToString(), new Font("Times New Roman", 10), new SolidBrush(Color.Black), 0, yOffSet); // Заполняем прямоугольник при помощи градиентной кисти g.FillRectangle(theBrush, 150, yOffSet, 200, 50); yOffSet += 80; } }

Слайд 52





Вывод изображений
Члены класса Image
Описание слайда:
Вывод изображений Члены класса Image

Слайд 53





Вывод изображений
public class mainForm : System.Windows.Forms.Form
{
	// Объявляем переменные типа Image
	private Image bMapImageA;
	private Image bMapImageB;
	private Image bMapImageC;

	public MainForm()
	{
		...
	// Используем для этих переменных объекты класса Bitmap 
	bMapImageA = new Bitmap("ImageA.bmp");
	bMapImageB = new Bitmap("ImageB.bmp");
	bMapImageC = new Bitmap("ImageC.bmp");
	}
...
}
Описание слайда:
Вывод изображений public class mainForm : System.Windows.Forms.Form { // Объявляем переменные типа Image private Image bMapImageA; private Image bMapImageB; private Image bMapImageC; public MainForm() { ... // Используем для этих переменных объекты класса Bitmap bMapImageA = new Bitmap("ImageA.bmp"); bMapImageB = new Bitmap("ImageB.bmp"); bMapImageC = new Bitmap("ImageC.bmp"); } ... }

Слайд 54





Вывод изображений
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
	Graphics g = e.Graphics;

	// Выводим изображения
	g.DrawImage(bMapImageA, 10, 10, 90, 90);
	g.DrawImage(bMapImageB, rectB);
	g.DrawImage(bMapImageC, rectC);

}
Описание слайда:
Вывод изображений private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g = e.Graphics; // Выводим изображения g.DrawImage(bMapImageA, 10, 10, 90, 90); g.DrawImage(bMapImageB, rectB); g.DrawImage(bMapImageC, rectC); }

Слайд 55





Форматы изображений
// Тип Bitmap поддерживает все распространенные форматы!
Bitmap myBMP = new Bitmap("CoffeeCup.bmp");
Bitmap myGIF = new Bitmap("Candy.gif");
Bitmap myJPEG = new Bitmap("Clock.jpg");
Bitmap myPNG = new Bitmap("Speakers.png");
Bitmap myTIFF = new Bitmap("FooFighters.bmp");
// Выводим изображения при помощи Graphics.DrawImage()
g.DrawImage(myBmp, 10, 10);
g.DrawImage(myGIF, 220, 10);
g.DrawImage(myJPEG, 280, 10);
g.DrawImage(myPNG, 150, 200);
g.DrawImage(myTIFF, 300, 200);
Описание слайда:
Форматы изображений // Тип Bitmap поддерживает все распространенные форматы! Bitmap myBMP = new Bitmap("CoffeeCup.bmp"); Bitmap myGIF = new Bitmap("Candy.gif"); Bitmap myJPEG = new Bitmap("Clock.jpg"); Bitmap myPNG = new Bitmap("Speakers.png"); Bitmap myTIFF = new Bitmap("FooFighters.bmp"); // Выводим изображения при помощи Graphics.DrawImage() g.DrawImage(myBmp, 10, 10); g.DrawImage(myGIF, 220, 10); g.DrawImage(myJPEG, 280, 10); g.DrawImage(myPNG, 150, 200); g.DrawImage(myTIFF, 300, 200);

Слайд 56





Методы Add класса GraphicsPath
AddArc
AddBezier
AddBeziers 
AddclosedCurves	
AddCurve
AddEllipse
AddLine
Описание слайда:
Методы Add класса GraphicsPath AddArc AddBezier AddBeziers AddclosedCurves AddCurve AddEllipse AddLine

Слайд 57





Построение пути
public MainForm : System.Windows.Forms.Form
{
  // Создаем объект GraphicsPath
  GraphicsPath myPath = new GraphicsPath();
  public MainForm()
  {
  // Добавляем в объект GraphicsPath элементы, из которых он будет состоять 
	myPath.StartFigure();
		myPath.AddLine(new Point(150, 10), new Point(120, 150));
		myPath.AddArc(200, 200, 100, 100, 0, 90);
		Point point1 = new Point(250, 250);
		Point point2 = new Point(350, 275);
		Point point3 = new Point(350, 325);
		Point point4 = new Point(250, 350);
		Point[] points = {point1, point2, point3, point4};
			myPath.AddCurve(points);
	myPath.CloseFigure();
		...
		}
}
Описание слайда:
Построение пути public MainForm : System.Windows.Forms.Form { // Создаем объект GraphicsPath GraphicsPath myPath = new GraphicsPath(); public MainForm() { // Добавляем в объект GraphicsPath элементы, из которых он будет состоять myPath.StartFigure(); myPath.AddLine(new Point(150, 10), new Point(120, 150)); myPath.AddArc(200, 200, 100, 100, 0, 90); Point point1 = new Point(250, 250); Point point2 = new Point(350, 275); Point point3 = new Point(350, 325); Point point4 = new Point(250, 350); Point[] points = {point1, point2, point3, point4}; myPath.AddCurve(points); myPath.CloseFigure(); ... } }

Слайд 58





Проверка попадания в фигуру
private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
  // Get (x, y) of mouse click.
  Point mousePt = new Point(e.X, e.Y);
  // See if the mouse is anywhere in the 3 regions...
  if (rectA.Contains(mousePt))
  {
	isImageClicked = true;
	imageClicked = 0;
	this.Text = "You clicked image A";
  }
  …
  else if (myPath.IsVisible(mousePt))
	{
		isImageClicked = true;
		imageClicked = 3;
		this.Text = "You clicked the strange shape...";
	}
        else	// Not in any shape, set defaults.
	{
		isImageClicked = false;
		this.Text = "Images";
	}
				
	// Redraw the client area.
	Invalidate();
}
Описание слайда:
Проверка попадания в фигуру private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { // Get (x, y) of mouse click. Point mousePt = new Point(e.X, e.Y); // See if the mouse is anywhere in the 3 regions... if (rectA.Contains(mousePt)) { isImageClicked = true; imageClicked = 0; this.Text = "You clicked image A"; } … else if (myPath.IsVisible(mousePt)) { isImageClicked = true; imageClicked = 3; this.Text = "You clicked the strange shape..."; } else // Not in any shape, set defaults. { isImageClicked = false; this.Text = "Images"; } // Redraw the client area. Invalidate(); }

Слайд 59





Выводим объект GraphicsPath
private void MainForm_Paint(object sender, PaintEventArgs e)
{
	Graphics g = e.Graphics;
	...
	// Выводим объект GraphicsPath
	g.FillPath(Brushes.AliceBlue, myPath);

	// Обводим этот объект рамкой (по щелчку)
	if(isImageClicked = = true)
	{
		Pen outline = new Pen(Color.red, 5);

		switch(imageClicked)
		{
			...
			case 3:
				g.DrawPath(outline, myPath);
				break;
			default:
				break;
		}
	}
}
Описание слайда:
Выводим объект GraphicsPath private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; ... // Выводим объект GraphicsPath g.FillPath(Brushes.AliceBlue, myPath); // Обводим этот объект рамкой (по щелчку) if(isImageClicked = = true) { Pen outline = new Pen(Color.red, 5); switch(imageClicked) { ... case 3: g.DrawPath(outline, myPath); break; default: break; } } }

Слайд 60





Ресурсы
*.resx
*.resources
ResourceManager
ResourceWriter
ResourceReader
Описание слайда:
Ресурсы *.resx *.resources ResourceManager ResourceWriter ResourceReader

Слайд 61





Что еще?
Элементы управления
Ввод/вывод и сериализация объектов
Взаимодействие с DLL, созданными на С и VB 6.0
Доступ к данным ADO.NET
Разработка Web-приложений
Web-службы
Описание слайда:
Что еще? Элементы управления Ввод/вывод и сериализация объектов Взаимодействие с DLL, созданными на С и VB 6.0 Доступ к данным ADO.NET Разработка Web-приложений Web-службы



Похожие презентации
Mypresentation.ru
Загрузить презентацию