|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - FernandaUY
Páginas: [1]
1
« en: Sábado 11 de Septiembre de 2010, 18:07 »
Hola Gente.
Tengo una clase que hereda del control Panel. Sobre el Panel, dibujo un montón de rectangulos y lineas de conexión (es la representación de un grafo de WorkFlow). Para salvarlo como imagen, estoy utilizando DrawToBitmap, el cual funciona, pero... (siempre hay un pero)
... cuando el tamaño del Panel est tan grande que debe hacer Scroll, lo único que salva es el ClientArea, pero no lo que queda debajo o a la derecha en el control.
Espero que se haya entendido la pregunta. Gracias de antemano por la ayuda que puedan darme. Saludos.
2
« en: Lunes 6 de Septiembre de 2010, 04:50 »
Podría ser algo así public void Cuadro() { Brush oSolidBrush = new LinearGradientBrush (new Rectangle (_Izquierda,_Arriba,_Ancho,_Altura ),_ColorRelleno,Color .White, 45, false); Pen oPen = new Pen (_ColorBorde, _AnchoBorde ); // Dibuja el área _Area.FillRectangle(oSolidBrush, _Izquierda, _Arriba, _Ancho, _Altura); // Dibuja el borde _Area.DrawRectangle(oPen, _Izquierda, _Arriba, _Ancho, _Altura); // Dibuja el texto centrado en el cuadro s = "Texto a dibujar"; // if text empty not draw if (String.IsNullOrEmpty(s)) return; // Calculate text position sizeText = _Area.MeasureString(s, _shapeFont); textX = Math.Min(pStart.X, pEnd.X) + (Math.Abs(pStart.X - pEnd.X) / 2) - (sizeText.Width / 2); textY = Math.Min(pStart.Y, pEnd.Y) + (Math.Abs(pStart.Y - pEnd.Y) / 2) - (sizeText.Height / 2); // Draw text _Area.DrawString(s, _shapeFont, _shapeFontColorSolidBrush, textX, textY); }
3
« en: Lunes 6 de Septiembre de 2010, 04:36 »
Hola. Tengo el siguiente problema. Estoy generando una clase Rectangulo para dibujar en un panel, pero cuando sobreescribo los eventos MouseDown y MouseUp, no se disparan. Alguna ayuda? Gracias. using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Collections.Generic; using System.Windows.Forms; namespace Trevo.Windows.UI { public class Rectangulo : Control { #region Miembros // Graficos private Graphics _Area = null; private Font _Letra = new Font ("Tahoma", 8, FontStyle .Regular, GraphicsUnit .Point); // Posicion private int _Izquierda = 0; // X private int _Arriba = 0; // Y private int _Ancho = 0; private int _Altura = 0; #endregion #region Constructores public Rectangulo(Graphics pG) { _Area = pG; } public Rectangulo(Graphics pG, int pIzquierda, int pDerecha, int pAncho, int pAltura, int pRadio) { _Area = pG; _Izquierda = pIzquierda; _Arriba = pDerecha; _Ancho = pAncho; _Altura = pAltura; _Radio = pRadio; } #endregion #region Overrides protected override void OnCreateControl() { this.MouseDown += new MouseEventHandler (this.Rect_MouseDown); //MouseMove += new MouseEventHandler(Rect_MouseDown); this.MouseUp += new MouseEventHandler (this.Rect_MouseDown); base.OnCreateControl(); } #endregion #region Handlers private void Rect_MouseDown(object sender, MouseEventArgs e) { MessageBox.Show("click"); } #endregion }
4
« en: Lunes 6 de Septiembre de 2010, 04:26 »
Yo utilizo el siguiente método public void Redondeado() { GraphicsPath gp = new GraphicsPath (); //SolidBrush oSolidBrush = new SolidBrush(_ColorRelleno); Brush oSolidBrush = new LinearGradientBrush (new Rectangle (_Izquierda, _Arriba, _Ancho, _Altura ), _ColorRelleno, Color .White, 45, false); Pen oPen = new Pen (_ColorBorde, _AnchoBorde ); gp.AddLine(_Izquierda + _Radio, _Arriba, _Izquierda + _Ancho - (_Radio * 2), _Arriba); // Line gp.AddArc(_Izquierda + _Ancho - (_Radio * 2), _Arriba, _Radio * 2, _Radio * 2, 270, 90); // Corner gp.AddLine(_Izquierda + _Ancho, _Arriba + _Radio, _Izquierda + _Ancho, _Arriba + _Altura - (_Radio * 2)); // Line gp.AddArc(_Izquierda + _Ancho - (_Radio * 2), _Arriba + _Altura - (_Radio * 2), _Radio * 2, _Radio * 2, 0, 90); // Corner gp.AddLine(_Izquierda + _Ancho - (_Radio * 2), _Arriba + _Altura, _Izquierda + _Radio, _Arriba + _Altura); // Line gp.AddArc(_Izquierda, _Arriba + _Altura - (_Radio * 2), _Radio * 2, _Radio * 2, 90, 90); // Corner gp.AddLine(_Izquierda, _Arriba + _Altura - (_Radio * 2), _Izquierda, _Arriba + _Radio); // Line gp.AddArc(_Izquierda, _Arriba, _Radio * 2, _Radio * 2, 180, 90); // Corner gp.CloseFigure(); _Area.FillPath(oSolidBrush, gp); _Area.DrawPath(oPen, gp); gp.Dispose(); }
Páginas: [1]
|
|
|