Pregunta

Los controles que heredan fuera de System.Web.UI.WebControls.WebControl tiene una propiedad llamada Font. El tipo es System.Web.Ui.WebControls.FontInfo.

Cuando se trabaja con estos controles en el diseñador, que estalla la propiedad Font en múltiples propiedades como Font-Bold, Font-Italic, etc. Cuando se trabaja con estos mismos WebControls en el código subyacente, sólo hay una propiedad Font (sin Font-Bold, Font-Italic, etc. ).

¿Cómo puede este comportamiento se volverá a crear manualmente al crear WebControls? Específicamente, ¿qué combinación de atributos System.ComponentModel puede mostrar / ocultar estas propiedades en Intellisense?

¿Fue útil?

Solución 3

La propiedad que desea ampliar (Font en este caso) debe tener establecido el atributo System.ComponentModel.DesignerSerializationVisibility a System.ComponentModel.DesignerSerializationVisibility.Content. Esto se detalla en el siguiente enlace

System.ComponentModel.DesignerSerializationVisibility

Otros consejos

Se debe poder acceder a la negrita, cursiva y así sucesivamente como propiedades booleanas:

http://msdn.microsoft .com / es-eS / biblioteca / system.web.ui.webcontrols.fontinfo.aspx

  void Page_Load(object sender, EventArgs e)
  {
    // When the page loads, set the the myLabel Label control's FontInfo properties.
    // Note that myLabel.Font is a FontInfo object.

    myLabel.Font.Bold = true;
    myLabel.Font.Italic = false;
    myLabel.Font.Name = "verdana";
    myLabel.Font.Overline = false;
    myLabel.Font.Size = 10;
    myLabel.Font.Strikeout = false;
    myLabel.Font.Underline = true;

    // Write information on the FontInfo object to the myLabel label.
    myLabel.Text = myLabel.Font.ToString();

  }

La propiedad de desintegración está ocurriendo de forma automática.

Si usted tiene un control que tiene una propiedad que tiene sus propias propiedades

public class ServerControl1 : WebControl
{
   public CompositeItem Composite { get; set; }

    public ServerControl1()
    {
        Composite = new CompositeItem();
    }
}

public class CompositeItem
{
    public bool ItemOne { get; set; }
    public string ItemTwo { get; set; }
    public int ItemThree { get; set; }
}

puede utilizar la sintaxis de fuente-Bold en el aspx, lo que significa que

<cc:ServerControl1 runat="server" ID="scOne" 
    Composite-ItemOne="true" Composite-ItemTwo ="stringx"/>

funcionará como se espera. Sin embargo, Autocompletar no funciona, y no estoy seguro de qué atributos se requiere combinación de System.ComponentModel para hacer que se comporte como la Font-Bold.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top