Cuando sobreescribas el OnRender…

Recuerda que es muy recomendable que también sobreescribas el MeasureOverride, porque el que hay por defecto retornará el tamaño de lo que dibujes, y si en el render vuelves a coger el tamaño, crecerá recursivamente. Bueno, es un poco lioso, de todas maneras este post es solamente para mí Sonrisa

   1: protected override void OnRender(DrawingContext drawingContext)

   2:        {

   3:            var rect = new Rect(0, 0, RenderSize.Width, RenderSize.Height);

   4:            drawingContext.DrawRectangle(Fill, null, rect);

   5:            var inflatedRect = rect;

   6:            inflatedRect.Inflate(-StrokeThickness / 2, -StrokeThickness / 2);

   7:            // Left            

   8:            drawingContext.DrawLine(_pen, new Point(inflatedRect.TopLeft.X, rect.TopLeft.Y), new Point(inflatedRect.BottomLeft.X, rect.BottomLeft.Y));

   9:            // Top            

  10:            drawingContext.DrawLine(_pen, new Point(rect.TopLeft.X, inflatedRect.TopLeft.Y), new Point(rect.TopRight.X, inflatedRect.TopRight.Y));

  11:            // Right           

  12:            drawingContext.DrawLine(_pen, new Point(inflatedRect.TopRight.X, inflatedRect.TopRight.Y), new Point(inflatedRect.BottomRight.X, inflatedRect.BottomRight.Y));

  13:            // Bottom            

  14:            drawingContext.DrawLine(_pen, new Point(rect.BottomLeft.X, inflatedRect.BottomLeft.Y), new Point(rect.BottomRight.X, inflatedRect.BottomRight.Y));

  15:        }

  16:        protected override Geometry DefiningGeometry

  17:        {

  18:            get { return new RectangleGeometry(new Rect(0, 0, RenderSize.Width, RenderSize.Height)); }

  19:        }

  20:        protected override Size MeasureOverride(Size constraint)

  21:        {

  22:            return constraint;

  23:        }

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s