Diseño personalizado de tiempo de aparición de los controles


Cómo hacer un control tienen una mirada diferente a designtime.

Somtimes un control debe aparecer de forma diferente en designtime a cómo lo hacen en tiempo de ejecución. Este aspecto es a menudo para indicar algo a los desarrolladores, que será irrelevante para un usuario en tiempo de ejecución.

El enfoque estándar para la consecución de este objetivo es agregar código adicional en el método OnPaint

public class MyControl de Control:
{
public override void OnPaint(object sender, PaintEventArgs e)
{
//Normal pintura aquí
if (!DesignMode)
{
//tiempo de Diseño, pintura aquí
//Dibuja un rectángulo alrededor del control
}
}
}

Mientras esto funciona bien, no es la ideal. Aquí se mezcla el tiempo de ejecución y el código en tiempo de diseño. También, tomar en cuenta lo que podría pasar si otro control desciende de esta clase y anula OnPaint

public class MyOtherControl : MyControl
{
public override void OnPaint(object sender, PaintEventArgs e)
{
//la Llamada de la base, que dibuja un rectángulo alrededor del control
Base.OnPaint(sender, e)
//código que se dibuja el rectángulo
}
}

Lo que realmente necesitamos es una forma de llamar a la dirección.Objeto Graphics después de que el método OnPaint ha terminado completamente, y sólo durante el tiempo de diseño.

la solución está en La ControlDesigner clase, y el Diseñador de atributo.

public class MyControlDesigner : Sistema.Windows.Los formularios.Diseño.ControlDesigner
{
public override void OnPaintAdornments(PaintEventArgs e)
{
//tiempo de Diseño, pintura aquí
//Dibuja un rectángulo alrededor del control
}
}

Entonces, acabamos de asociar MyControlDesigner con el MyControl clase, nota cómo el método OnPaint ya no tiene tiempo de diseño de la pintura en él.

[Sistema.ComponentModel.Diseñador(typeof(MyNameSpace.MyControlDesigner))]
public class MyControl de Control:
{
public override void OnPaint(object sender, PaintEventArgs e)
{
//Normal pintura aquí
}
}









Diseño personalizado de tiempo de aparicion de los controles


Diseño personalizado de tiempo de aparicion de los controles : Multi-millones de consejos para hacer su vida mas facil.


Como hacer un control tienen una mirada diferente a designtime.

Somtimes un control debe aparecer de forma diferente en designtime a como lo hacen en tiempo de ejecucion. Este aspecto es a menudo para indicar algo a los desarrolladores, que sera irrelevante para un usuario en tiempo de ejecucion.

El enfoque estandar para la consecucion de este objetivo es agregar codigo adicional en el metodo OnPaint

public class MyControl de Control:
{
public override void OnPaint(object sender, PaintEventArgs e)
{
//Normal pintura aqui
if (!DesignMode)
{
//tiempo de Diseño, pintura aqui
//Dibuja un rectangulo alrededor del control
}
}
}

Mientras esto funciona bien, no es la ideal. Aqui se mezcla el tiempo de ejecucion y el codigo en tiempo de diseño. Tambien, tomar en cuenta lo que podria pasar si otro control desciende de esta clase y anula OnPaint

public class MyOtherControl : MyControl
{
public override void OnPaint(object sender, PaintEventArgs e)
{
//la Llamada de la base, que dibuja un rectangulo alrededor del control
Base.OnPaint(sender, e)
//codigo que se dibuja el rectangulo
}
}

Lo que realmente necesitamos es una forma de llamar a la direccion.Objeto Graphics despues de que el metodo OnPaint ha terminado completamente, y solo durante el tiempo de diseño.

la solucion esta en La ControlDesigner clase, y el Diseñador de atributo.

public class MyControlDesigner : Sistema.Windows.Los formularios.Diseño.ControlDesigner
{
public override void OnPaintAdornments(PaintEventArgs e)
{
//tiempo de Diseño, pintura aqui
//Dibuja un rectangulo alrededor del control
}
}

Entonces, acabamos de asociar MyControlDesigner con el MyControl clase, nota como el metodo OnPaint ya no tiene tiempo de diseño de la pintura en el.

[Sistema.ComponentModel.Diseñador(typeof(MyNameSpace.MyControlDesigner))]
public class MyControl de Control:
{
public override void OnPaint(object sender, PaintEventArgs e)
{
//Normal pintura aqui
}
}


Diseño personalizado de tiempo de aparición de los controles

Diseño personalizado de tiempo de aparición de los controles : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación