Recréer « Police » Comportement de propriété
-
29-09-2019 - |
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?
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
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.