SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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
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+).
Uso de System.Drawing - Principios
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
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)
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.
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)
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.
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
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.
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))
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.
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));
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);
Uso de System.Drawing – Líneas y figuras Dibujando y rellenando rectángulos DrawRectangle DrawRectangles FillRectangle FillRectangles
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);
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.
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);
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
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)
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.
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
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
Uso de System.Drawing – Iconos y bitmaps Creación, dibujo y salvado de un Bitmap Creación de un objeto Bitmap Bitmap bitmap = new Bitmap(@"FilePath"); Dibujando el objeto Bitmap graphic.DrawImage(bitmap, new Point(10, 10)); Salvando el Bitmap bitmap.Save(@"Pathmage.jpg",ImageFormat.Jpeg); ImageFormat: ,[object Object]
Windows Enhanced Metafile (EMF)
Exchangeable Image File (Exif)
Graphics Interchange Format (GIF)

Contenu connexe

Tendances

Delitos Informaticos- Convenio de Budapest
Delitos Informaticos- Convenio de BudapestDelitos Informaticos- Convenio de Budapest
Delitos Informaticos- Convenio de BudapestGeitheir Aldhair
 
Examen Practico de Informatica
Examen Practico de InformaticaExamen Practico de Informatica
Examen Practico de InformaticaCatery23
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuenciaLenin Vivanco
 
EL SPAM INFORMÁTICO
EL SPAM INFORMÁTICOEL SPAM INFORMÁTICO
EL SPAM INFORMÁTICOEliascg18
 
Crucigrama de las Herramientas de Fuente
Crucigrama de las Herramientas de FuenteCrucigrama de las Herramientas de Fuente
Crucigrama de las Herramientas de FuenteDaniel Zavala
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASEdavidsande
 
Analisis y Diseño de Sistemas - Kendal & Kendal - Sexta Edición
Analisis y Diseño de Sistemas - Kendal & Kendal - Sexta EdiciónAnalisis y Diseño de Sistemas - Kendal & Kendal - Sexta Edición
Analisis y Diseño de Sistemas - Kendal & Kendal - Sexta EdiciónRolf Pinto
 
Agentes MóViles
Agentes MóVilesAgentes MóViles
Agentes MóVilesmapaz91
 

Tendances (9)

Delitos Informaticos- Convenio de Budapest
Delitos Informaticos- Convenio de BudapestDelitos Informaticos- Convenio de Budapest
Delitos Informaticos- Convenio de Budapest
 
Examen Practico de Informatica
Examen Practico de InformaticaExamen Practico de Informatica
Examen Practico de Informatica
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
 
Algoejemplos
AlgoejemplosAlgoejemplos
Algoejemplos
 
EL SPAM INFORMÁTICO
EL SPAM INFORMÁTICOEL SPAM INFORMÁTICO
EL SPAM INFORMÁTICO
 
Crucigrama de las Herramientas de Fuente
Crucigrama de las Herramientas de FuenteCrucigrama de las Herramientas de Fuente
Crucigrama de las Herramientas de Fuente
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASE
 
Analisis y Diseño de Sistemas - Kendal & Kendal - Sexta Edición
Analisis y Diseño de Sistemas - Kendal & Kendal - Sexta EdiciónAnalisis y Diseño de Sistemas - Kendal & Kendal - Sexta Edición
Analisis y Diseño de Sistemas - Kendal & Kendal - Sexta Edición
 
Agentes MóViles
Agentes MóVilesAgentes MóViles
Agentes MóViles
 

Similaire à Uso de System.Drawing - Principios básicos (39

Powerpoint de inskape
Powerpoint de inskapePowerpoint de inskape
Powerpoint de inskaperamiandy
 
Powerpoint de inskape
Powerpoint de inskapePowerpoint de inskape
Powerpoint de inskaperamiandy
 
Unidad iii elementos y comandos de corel draw
Unidad iii elementos y comandos de corel drawUnidad iii elementos y comandos de corel draw
Unidad iii elementos y comandos de corel drawpaquetes3
 
Graficos en Qt.ppt
Graficos en Qt.pptGraficos en Qt.ppt
Graficos en Qt.pptDarioKlug
 
Unidad iii elementos y comandos de corel draw
Unidad iii elementos y comandos de corel drawUnidad iii elementos y comandos de corel draw
Unidad iii elementos y comandos de corel drawpaquetes3
 
Curso de inkscape
Curso de inkscapeCurso de inkscape
Curso de inkscapeLourdes Pla
 
Buenos ejercicios guiados con herramientas
Buenos ejercicios guiados con herramientasBuenos ejercicios guiados con herramientas
Buenos ejercicios guiados con herramientasdtordie
 
Tutorial illustrator
Tutorial illustratorTutorial illustrator
Tutorial illustratorAni Becerra
 
Trabajo omr
Trabajo omrTrabajo omr
Trabajo omrjezer23
 
Tema 05_ Diseño asistido por ordenador.pdf
Tema 05_ Diseño asistido por ordenador.pdfTema 05_ Diseño asistido por ordenador.pdf
Tema 05_ Diseño asistido por ordenador.pdfDanielPeaSaenz
 
Completo presentacion corel
Completo presentacion corelCompleto presentacion corel
Completo presentacion corellnoceti
 
SolidWorksL1_L2
SolidWorksL1_L2SolidWorksL1_L2
SolidWorksL1_L2Juan Islas
 

Similaire à Uso de System.Drawing - Principios básicos (39 (20)

Powerpoint de inskape
Powerpoint de inskapePowerpoint de inskape
Powerpoint de inskape
 
Powerpoint de inskape
Powerpoint de inskapePowerpoint de inskape
Powerpoint de inskape
 
Unidad iii elementos y comandos de corel draw
Unidad iii elementos y comandos de corel drawUnidad iii elementos y comandos de corel draw
Unidad iii elementos y comandos de corel draw
 
Guia de inicio Corel Draw 2018
Guia de inicio Corel Draw 2018Guia de inicio Corel Draw 2018
Guia de inicio Corel Draw 2018
 
manual-de-photoshop-cs5.pdf
manual-de-photoshop-cs5.pdfmanual-de-photoshop-cs5.pdf
manual-de-photoshop-cs5.pdf
 
Corel draw graphics-suite-x7
Corel draw graphics-suite-x7Corel draw graphics-suite-x7
Corel draw graphics-suite-x7
 
FICHA INFORMATIVA N° 50.pdf
FICHA INFORMATIVA N° 50.pdfFICHA INFORMATIVA N° 50.pdf
FICHA INFORMATIVA N° 50.pdf
 
Graficos en Qt.ppt
Graficos en Qt.pptGraficos en Qt.ppt
Graficos en Qt.ppt
 
Unidad iii elementos y comandos de corel draw
Unidad iii elementos y comandos de corel drawUnidad iii elementos y comandos de corel draw
Unidad iii elementos y comandos de corel draw
 
Tutorial de Java
Tutorial de JavaTutorial de Java
Tutorial de Java
 
Curso de inkscape
Curso de inkscapeCurso de inkscape
Curso de inkscape
 
Buenos ejercicios guiados con herramientas
Buenos ejercicios guiados con herramientasBuenos ejercicios guiados con herramientas
Buenos ejercicios guiados con herramientas
 
Ejercicios sketchup
Ejercicios sketchupEjercicios sketchup
Ejercicios sketchup
 
Tutorial illustrator
Tutorial illustratorTutorial illustrator
Tutorial illustrator
 
Trabajo omr
Trabajo omrTrabajo omr
Trabajo omr
 
Tema 05_ Diseño asistido por ordenador.pdf
Tema 05_ Diseño asistido por ordenador.pdfTema 05_ Diseño asistido por ordenador.pdf
Tema 05_ Diseño asistido por ordenador.pdf
 
Ejercicios sketchup
Ejercicios sketchupEjercicios sketchup
Ejercicios sketchup
 
379051490 informe-1-cad-cam
379051490 informe-1-cad-cam379051490 informe-1-cad-cam
379051490 informe-1-cad-cam
 
Completo presentacion corel
Completo presentacion corelCompleto presentacion corel
Completo presentacion corel
 
SolidWorksL1_L2
SolidWorksL1_L2SolidWorksL1_L2
SolidWorksL1_L2
 

Plus de Antonio Palomares Sender

Framework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de solucionesFramework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de solucionesAntonio Palomares Sender
 
Framework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redFramework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redAntonio Palomares Sender
 
Framework .NET 3.5 09 Depuración, monitorización y pruebas
Framework .NET 3.5 09 Depuración, monitorización y pruebasFramework .NET 3.5 09 Depuración, monitorización y pruebas
Framework .NET 3.5 09 Depuración, monitorización y pruebasAntonio Palomares Sender
 
Framework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datosFramework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datosAntonio Palomares Sender
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosAntonio Palomares Sender
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netAntonio Palomares Sender
 
Framework .NET 3.5 05 Tipo y jerarquía de objetos
Framework .NET 3.5 05 Tipo y jerarquía de objetosFramework .NET 3.5 05 Tipo y jerarquía de objetos
Framework .NET 3.5 05 Tipo y jerarquía de objetosAntonio Palomares Sender
 
Framework .NET 3.5 04 El common language runtime
Framework .NET 3.5 04 El common language runtimeFramework .NET 3.5 04 El common language runtime
Framework .NET 3.5 04 El common language runtimeAntonio Palomares Sender
 
Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Antonio Palomares Sender
 
Framework .NET 3.5 14 Gestión de archivos y serialización
Framework .NET 3.5 14  Gestión de archivos y serializaciónFramework .NET 3.5 14  Gestión de archivos y serialización
Framework .NET 3.5 14 Gestión de archivos y serializaciónAntonio Palomares Sender
 
Framework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoFramework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoAntonio Palomares Sender
 

Plus de Antonio Palomares Sender (13)

Framework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de solucionesFramework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de soluciones
 
Framework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redFramework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la red
 
Framework .NET 3.5 11 Seguridad
Framework .NET 3.5 11 SeguridadFramework .NET 3.5 11 Seguridad
Framework .NET 3.5 11 Seguridad
 
Framework .NET 3.5 10 Linq
Framework .NET 3.5 10 LinqFramework .NET 3.5 10 Linq
Framework .NET 3.5 10 Linq
 
Framework .NET 3.5 09 Depuración, monitorización y pruebas
Framework .NET 3.5 09 Depuración, monitorización y pruebasFramework .NET 3.5 09 Depuración, monitorización y pruebas
Framework .NET 3.5 09 Depuración, monitorización y pruebas
 
Framework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datosFramework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datos
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
Framework .NET 3.5 05 Tipo y jerarquía de objetos
Framework .NET 3.5 05 Tipo y jerarquía de objetosFramework .NET 3.5 05 Tipo y jerarquía de objetos
Framework .NET 3.5 05 Tipo y jerarquía de objetos
 
Framework .NET 3.5 04 El common language runtime
Framework .NET 3.5 04 El common language runtimeFramework .NET 3.5 04 El common language runtime
Framework .NET 3.5 04 El common language runtime
 
Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)
 
Framework .NET 3.5 14 Gestión de archivos y serialización
Framework .NET 3.5 14  Gestión de archivos y serializaciónFramework .NET 3.5 14  Gestión de archivos y serialización
Framework .NET 3.5 14 Gestión de archivos y serialización
 
Framework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoFramework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entorno
 

Dernier

Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.radatoro1
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 

Dernier (20)

Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.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+).
  • 3. Uso de System.Drawing - Principios
  • 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
  • 24.
  • 29. JPEG
  • 32. TIFF
  • 33.
  • 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);