Hernandez_Hernandez_Practica web de la sesion 12.pptx
Uso de System.Drawing - Principios básicos (39
1. Uso de System.Drawing A menudo es necesario personalizar el aspecto de nuestras aplicaciones, para ello .NET Framework nos suministra el espacio de nombres System.Drawing en el que podemos encontrar clases con las funcionalidades necesarias para crear y manipular aspectos gráficos, imágenes, efectos personalizados y controles personalizados. El módulo está organizados en: Principios de dibujo Líneas y figuras Iconos y Bitmaps
2. Uso de System.Drawing - Principios El espacio de nombres System.Drawing Características comunes de las clases del espacio de nombres: Clases que representan elementos habituales de dibujo. Estructuras que usaremos para dibujar líneas, figuras e imágenes. Enumeraciones que representan los colores y estilos habituales. .NET Framework suministra el espacio de nombre System.Drawing para habilitar la creación y manipulación de objetos gráficos, con clases, estructuras y enumeraciones que usaremos para desarrollar un interfaz bidimensional (2D). Los tipos de este espacio de nombres implementan un wrapper arropando los objetos de la librería del interfaz gráfico de dispositivo no manejado (GDI+).
4. Uso de System.Drawing - Principios Uso de las estructuras Point y Size Point: [Visual C#] Point puntoInicial = new Point(1,2); [Visual Basic] DimpuntoInicialAsNew Point(1,2) Suministra valores posicionales Representa las coordenadas X e Y en 2-D Relativo a la esquina superior izquierda del objeto gráfico contenedor x x y y Size: [Visual C#] Size tallaForma = new Size(10,20); [Visual Basic] DimtallaFormaAsNew Size(10,20) Suministra valores dimensionales Representa el ancho y alto de un objeto ancho alto ancho alto
5. Uso de System.Drawing - Principios Uso de las estructuras Point y Size Size tallaUno = new Size(10, 10); Dim tallaUno As New Size(10, 10) Size tallaDos = tallaUno + new Size(5,5); Dim tallaDos As Size = tallaUno + New Size(5, 5) tallaDos -= new Size(3,3); tallaDos -= New Size(3, 3) Point inicio = new Point(1, 1); Dim inicio As New Point(1, 1) Point fin = inicio + tallaDos; Dim fin As Point = inicio + tallaDos fin -= new Size(10,10); fin -= New Size(10, 10) int x = fin.X; Dim x As Integer = fin.X int y = fin.Y; Dim y As Integer = fin.Y int ancho = tallaDos.Width; Dim ancho As Integer = tallaDos.Width int alto = tallaDos.Height; Dim alto As Integer = tallaDos.Height (10,10) (15,15) (12,12) (1,1) (13,13) (3,3) (3) (3) (12) (12)
6. Uso de System.Drawing - Principios Creación de pinceles y lápices Brushes: Pens: Se usan para especificar la propiedad Fill de una forma con un color o un efecto Usar las clases SolidBrush, LinearGradientBrush, TextureBrush, o HatchBrush Se usan para dibujar líneas y curvas. Se ha de especificar la propiedad Width de la clase Pen. Para definir el estilo de la línea disponemos de la enumeración DashStyle. Podemos especificar el color del lápiz.
7. Uso de System.Drawing - Principios Creación de pinceles y lápices Crear un objeto Color: Color colorPersonal = Color.Black; colorPersonal = Color.FromArgb(255,0,0,0); colorPersonal = Color.FromKnownColor(KnownColor.Black); colorPersonal = Color.FromName("Black"); Creando pinceles: Brush pincel = new SolidBrush(Color.Black); Brush pincelDegradado = new LinearGradientBrush(new Point(0, 0), new Point(100, 100), Color.Black, Color.Red); Color colorPrimerPlano = Color.Red; Color colorFondo = Color.Black; Brush pincelSombreado = new HatchBrush(HatchStyle.BackwardDiagonal, foreColor, backColor); Image imagen = Image.FromFile("<RutaArchivo>"); Brush PincelConTextura = new TextureBrush(imagen); Creando lápices: Pen lapiz; Brush pincelPersonal = new SolidBrush(Color.Black) Color colorPersonal = Color.Black; lapiz = newPen(pincelPersonal ); lapiz = newPen(colorPersonal ); lapiz = new Pen(pincelPersonal , float ancho); lapiz = new Pen(colorPersonal , float ancho); lapiz = newPen(pincelPersonal ); lapiz.DashStyle = DashStyle.DashDot; (Enumeración DashStyle: Custom, Dash, DashDot, DashDotDot, Dot y Solid)
8. Uso de System.Drawing - Principios Creación y uso de un objeto gráfico Crear un objeto Graphics (lienzo/canvas) con el método CreateGraphics de un objeto WindowsForms o un control que admita gráficos. Acceder a los objetos Graphics disponibles mediante eventos orientados a gráficos. Efectuar llamadas a los métodos del objeto Graphics para dibujar en él.
9. Uso de System.Drawing - Principios Creación y uso de un objeto gráfico [Visual C#] Pen lapiz = new Pen(Color.Black); privatevoid Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawLine(lapiz, new Point(2, 2), new Point(100, 100)); } [Visual Basic] DimlapizAs Pen = New Pen(Color.Black) PrivateSub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) e.Graphics.DrawLine(lapiz, New Point(2, 2), New Point(100, 100)) EndSub
10. Uso de System.Drawing - Principios Uso de fuentes Para usar una fuente: Crear un pincel (brush). Crear una instancia de la clase FontFamily. Crear una instancia de la clase Font utilizando la instancia de FontFamily y un coma flotante para el tamaño. Llamar al método DrawString del objeto Graphics utilizando el pincel, la fuente y una nueva estructura PointF.
11. Uso de System.Drawing - Principios Uso de fuentes [Visual C#] Brush pincel = new SolidBrush(Color.Black); FontFamily familia = new FontFamily("Arial"); Font fuente = newFont(familia, 14.0f); Graphics grafico = this.CreateGraphics(); grafico.DrawString("Hello World", fuente, pincel, newPointF(10.0f,10.0f)); [Visual Basic] Dim pincelAs Brush = New SolidBrush(Color.Black) Dim familia As FontFamily = New FontFamily("Arial") Dim fuente As Font = New Font(familia,14.0f) Dim grafico As Graphics = Me.CreateGraphics() grafico.DrawString("Hello World", fuente, pincel,New PointF(10.0f,10.0f))
12. Uso de System.Drawing – Líneas y figuras Dibujando líneas Dibujando rectángulos Dibujando una elipse Dibujando un diagrama de tarta .NET Framework nos provee de la capacidad para dibujar líneas y figuras en el interfaz de usuario, las cuales nos permiten personalizar el aspecto de nuestras aplicaciones. El objeto Graphics nos da una serie de métodos que son los que nos permiten dibujar esas formas en nuestros formularios y controles. Podemos utilizar dichos métodos para dibujar líneas, rectángulos, elipses y diagramas de tarta en el interfaz.
13. Uso de System.Drawing – Líneas y figuras Dibujando líneas Para dibujar una línea: Usar un objeto Pen y dos estructuras Point para llamar al método DrawLine. Graphics grafico = this.CreateGraphics(); Brush pincel = new SolidBrush(Color.Black); Pen lapiz = new Pen(pincel); grafico.DrawLine(lapiz, new Point(10, 10), new Point(100, 100));
14. Uso de System.Drawing – Líneas y figuras Dibujando líneas Para dibujar múltiples líneas: Usar un objeto Pen y un array de estructuras Point para llamar al método DrawLines. Graphics grafico = this.CreateGraphics(); Brush pincel = new SolidBrush(Color.Black); Pen lapiz = newPen(pincel); Point[] puntos = new Point[4]; puntos[0] = new Point(10,10); puntos[1] = new Point(100,100); puntos[2] = new Point(10,150); puntos[3] = new Point(100,150); grafico.DrawLines(lapiz, puntos);
15. Uso de System.Drawing – Líneas y figuras Dibujando y rellenando rectángulos DrawRectangle DrawRectangles FillRectangle FillRectangles
16. Uso de System.Drawing – Líneas y figuras Dibujando y rellenando rectángulos DrawRectangle grafico.DrawRectangle(pen, 2, 2, 50, 50); Rectangle rectangulo = new Rectangle(new Point(26, 26), new Size(75, 100)); grafico.DrawRectangle(lapiz, rectangulo); DrawRectangles Rectangle[] rectangulos = new Rectangle[2]; rectangulos[0] = new Rectangle(2, 2, 50, 50); rectangulos[1] = new Rectangle(10, 10, 75, 75); grafico.DrawRectangles(lapiz, rectangulos); FillRectangle Brush pincel = new SolidBrush(Color.Yellow); Rectangle rectangulo = newRectangle(new Point(26, 26), new Size(75, 100)); grafico.FillRectangle(pincel, rectangulo);
17. Uso de System.Drawing – Líneas y figuras Dibujando una elipse DrawEllipse FillEllipse Para dibujar una elipse: Crear un objeto Pen o Brush para la elipse. Crear un objeto Rectangle para contener la elipse. Llamar a los métodos DrawEllipse o FillEllipse del objeto Graphics.
18. Uso de System.Drawing – Líneas y figuras Dibujando una elipse DrawEllipse Pen lapiz = new Pen(Color.Green); Rectangle rectangulo = new Rectangle(new Point(10,10), new Size(100,75)); graphic.DrawEllipse(lapiz, rectangulo); FillEllipse Brush pincel = new SolidBrush(Color.Blue); Rectangle rectangulo = new Rectangle(new Point(10,10), new Size(75,100)); graphic.FillEllipse(pincel, rectangulo);
19. Uso de System.Drawing – Líneas y figuras Dibujando un diagrama de tarta 270 0 180 90 Usar los métodos DrawPie(Pen) o FillPie(Brush) Usar un objeto Rectangle para definir el área en la que queremos dibujar el diagrama Suministrar ángulos de inicio y desplazamiento para definir el tamaño de la porción a dibujar
20. Uso de System.Drawing – Líneas y figuras Dibujando un diagrama de tarta [Visual C#] Brush pincel = new SolidBrush(Color.Red); Pen lapiz = new Pen(Color.Black, 3.0f); Rectangle rectangulo = new Rectangle(new Point(10, 10), new Size(200, 200)); graphic.FillPie(pincel, rectangull, 270.0f, 90.0f); graphic.DrawPie(lapiz, rectangulo, 270.0f, 90.0f); [Visual Basic] Dim pincel As Brush = New SolidBrush(Color.Red) DimlapizAs Pen = New Pen(Color.Black,3.0f) Dim rectangulo As Rectangle = New Rectangle(New Point(10,10),New Size(200,200)) graphic.FillPie(pincel, rectangulo, 270.0f, 90.0f) graphic.DrawPie(lapiz, rectangulo, 270.0f, 90.0f)
21. Uso de System.Drawing – Iconos y bitmaps Las clases Image y Bitmap Crear, dibujar y salvar un Bitmap Almacenar Images Usar iconos en una aplicación El interfaz de usuario integra gráficos sencillos tales como líneas y rectángulos y, a menudo, incluye gráficos profesionales que aportan un remate a nuestra aplicación. .NET Framework nos da la habilidad para cargar y manipular imágenes, del tipo logotipos o texturas, frecuentemente vistas en las aplicaciones.
22. Las clases Image y Bitmap Uso de System.Drawing – Iconos y bitmaps Hallaremos la clase ImageFormat en el espacio de nombres System.Drawing.Imaging La clase Image es una clase abstracta Los métodos Image.FromFileeImage.FromStream crean una instancia de la clase Image La clase Bitmap hereda de Image La clase Bitmap tiene los métodos GetPixel y SetPixel
23. Uso de System.Drawing – Iconos y bitmaps Creación, dibujo y salvado de un Bitmap Crearemos un objeto Bitmap utilizando un objeto Image, una cadena de caracteres o una instancia de System.IO.Stream Dibujaremos un mapa de bits mediante el método DrawImage del objeto Graphics Podremos salvar el objeto Bitmap utilizando el método Save
34. Uso de System.Drawing – Iconos y bitmaps Uso de iconos en una aplicación Para dibujar un icono en un objeto Graphics habremos de utilizar sus métodos DrawIcono DrawIconUnstretched. Para asignar un objeto Icon como icono del formulario, habremos de utilizar la propiedad Icon del mismo Dispondremos de los iconos comunes del sistema en la clase SystemIcons
35. Uso de System.Drawing – Iconos y bitmaps Uso de iconos en una aplicación Fijando la propiedad Icon de un formulario: Icon icono = new Icon(@"Pathcono.ico"); this.Icon = icono; Dibujando iconos: Icon icono = new Icon(@"Pathcono.ico"); Rectangle rectangulo = new Rectangle(new Point(10,10), new Size(80,80)); graphic.DrawIcon(icono, rectangulo); graphic.DrawIconUnstretched(icono, rectangulo); Uso de los iconos del sistema: Rectangle rectangulo = new Rectangle(new Point(10, 10), new Size(50, 50)); graphic.DrawIcon(SystemIcons.Question, rectangulo);