Question

Les contrôles héritant de hors System.Web.UI.WebControls.WebControl ont une propriété appelée Font. Le type est System.Web.Ui.WebControls.FontInfo.

Lorsque vous travaillez avec ces contrôles dans le concepteur, il se casse la propriété Font dans plusieurs propriétés comme Font-Bold, Font-Italic, etc. Lorsque vous travaillez avec ces mêmes WebControls dans le behind, il y a seulement une propriété Font (pas de Font-Bold, Font-Italic, etc. ).

Comment ce comportement peut être recréés manuellement lors de la création WebControls? Plus précisément, quelle est la combinaison d'attributs de System.ComponentModel peuvent afficher / masquer ces propriétés dans IntelliSense?

Était-ce utile?

La solution 3

La propriété que vous souhaitez étendre (Font dans ce cas) doit avoir l'attribut System.ComponentModel.DesignerSerializationVisibility ensemble à System.ComponentModel.DesignerSerializationVisibility.Content. Ceci est détaillé dans le lien suivant

System.ComponentModel.DesignerSerializationVisibility

Autres conseils

Vous devriez être en mesure d'accéder gras, italique et ainsi de suite en tant que propriétés booléennes:

http://msdn.microsoft .com / it-it / bibliothèque / 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 propriété panne se produit automatiquement.

Si vous avez un contrôle qui possède une propriété qui a des propriétés de sa propre

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; }
}

vous pouvez utiliser la syntaxe Font-gras dans le ASPX, ce qui signifie que

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

fonctionnera comme prévu. Cependant, autocomplete ne fonctionne pas, et je ne suis pas sûr combinaison d'attributs System.ComponentModel est nécessaire pour qu'il se comporte comme la Font-Gras.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top