Frage

Steuerelemente, die von System.Web.UI.WebControls.WebControl erbte off hat eine Eigenschaft namens Font. Der Typ ist System.Web.Ui.WebControls.FontInfo.

Wenn Sie mit diesen Kontrollen im Designer arbeitet, bricht es die Font Eigenschaft in mehrere Eigenschaften wie Font-Bold aus, Font-Italic usw. Wenn mit diesen gleichen WebControls in dem Code-Behind arbeitet, gibt es nur eine Font Eigenschaft (keine Font-Bold, Font-Italic, etc ).

Wie kann man dieses Verhalten manuell neu erstellt, wenn WebControls erstellen? Insbesondere, welche Kombination von System.ComponentModel Attribute zeigen / verstecken diese Eigenschaften in Intellisense?

War es hilfreich?

Lösung 3

Die Eigenschaft, die Sie erweitern möchten (Font in diesem Fall) sollte Attribut System.ComponentModel.DesignerSerializationVisibility Satz System.ComponentModel.DesignerSerializationVisibility.Content haben. Dies wird in dem folgenden Link detaillierte

System.ComponentModel.DesignerSerializationVisibility

Andere Tipps

Sie sollten in der Lage sein Bold zugreifen, Kursiv usw. als boolean Eigenschaften:

http://msdn.microsoft .com / it-it / library / 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();

  }

Der Objekt-Abbau geschieht automatisch.

Wenn Sie ein Steuerelement, das eine Eigenschaft hat, die Eigenschaften seiner eigenen

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

können Sie die Font-Bold-Syntax in der aspx verwenden, was bedeutet, dass

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

wird wie erwartet. Doch die automatische Vervollständigung nicht funktioniert, und ich bin nicht sicher, welche Kombination von System.ComponentModel Attributen erforderlich ist, um es wie der Font-Bold zu machen verhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top