InicioCiencia EducacionDibujando con WPF

En muchas tecnologías de interfaz de usuario hay una clara distinción entre controles oridnarios y dibujos personalizados. Regularmente las funciones de dibujo se utilizan para crear software especializado para juegos, visualización de datos, simulaciones, etc.

WPF esta diseñado con una filosofia completamente diferente. El soporte de dibujo de WPF no solo se puede utilizar para crear gráficos enriquecidos, sino que tambien se puede aprovechar las caracteristicas de animación y plantillas de controles personalizados, es decir el apoyo de dibujo en WPF es tan importante para crear juegos como para crear aplicaciones deslumbrantes de negocio.



La manera más fácil para dibujar en 2-D es utilizar formas. Existen clases que representan simples lineas, elipses, rectangulos y poligonos. Técnicamente las formas son conocidas como primitivas de dibujo. En el ejemplo que les muestro se realizan dibujos muy básicos de manera que puedan entender como funciona, aunque se puede combinar estos ingredientes básicos para crear gráficos más complejos.


Dibujando con WPF

XAML

En este caso dibujamos una linea recta y una linea con diversos puntos la cual hace un curvatura.

<Window x:Class="Dibujo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Canvas Name="canvasMiHoja">
<Line X1="10" Y1="10" X2="500" Y2="10" Stroke="Red" StrokeThickness="4"/>
<Path Stroke="Aquamarine" StrokeThickness="3" Data="M 10,100 C 100, 25 300, 550 400, 175 H 280"/>
</Canvas>
</Grid>
</Window>



C#

No solo en XAML se puede dibujar sino que no olvidemos que XAML solo es una representación de objeto de .NET, es decir todo lo que hacen XAML se puede utilizar en C# o en el lenguaje que este usando.

En tiempo de ejecución vamos dibujar una linea, una elipse y un triangulo el cual va girar 360º grados.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Media.Animation;

namespace Dibujo
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Line linea = new Line();
linea.X1 = 10;
linea.Y1 = 20;
linea.X2 = 10;
linea.Y2 = 300;
linea.Stroke = Brushes.Green;
linea.StrokeThickness = 4;
canvasMiHoja.Children.Add(linea);
Ellipse elipse = new Ellipse();
elipse.Fill = Brushes.LightCoral;
elipse.Stroke = Brushes.Blue;
elipse.StrokeThickness = 2;
elipse.Width = 200;
elipse.Height = 100;
elipse.Margin = new Thickness(300, 40, 0, 0);
canvasMiHoja.Children.Add(elipse);
PointCollection puntos = new PointCollection();
puntos.Add(new Point(0,0));
puntos.Add(new Point(0,1));
puntos.Add(new Point(1,1));
Polygon poligono = new Polygon();
poligono.Points = puntos;
poligono.Fill = Brushes.CadetBlue;
poligono.Width = 100;
poligono.Height = 100;
poligono.Stretch = Stretch.Fill;
poligono.Stroke = Brushes.DarkBlue;
poligono.StrokeThickness = 2;
poligono.Margin = new Thickness(150, 50, 0, 0);
RotateTransform rt = new RotateTransform(90,0.5,0.5);
poligono.RenderTransform = rt;
canvasMiHoja.Children.Add(poligono);
DoubleAnimation da = new DoubleAnimation(0, 360, TimeSpan.FromSeconds(20));
rt.BeginAnimation(RotateTransform.AngleProperty, da);
}
}
}




Descarga aki la solucion en c#:

por: http://vidaencodigo.blogspot.com.es/

Datos archivados del Taringa! original
0puntos
23visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

j
jolmanAsael🇦🇷
Usuario
Puntos0
Posts4
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.