Domanda

I controlli che ereditano off di System.Web.UI.WebControls.WebControl hanno una proprietà chiamata Font. Il tipo è System.Web.Ui.WebControls.FontInfo.

Quando si lavora con questi controlli nella finestra di progettazione, si rompe la proprietà Font in più immobili come Font-Bold, Font-Italic, ecc Quando si lavora con questi stessi WebControls nel codebehind, c'è solo una proprietà Font (senza Font-Bold, Font-Italic, ecc ).

Come può questo comportamento potrebbe essere ricreato manualmente durante la creazione WebControls? In particolare, quale combinazione di attributi System.ComponentModel può mostrare / nascondere questi immobili a Intellisense?

È stato utile?

Soluzione 3

La proprietà che si desidera ampliare (Font in questo caso) dovrebbe avere attributo System.ComponentModel.DesignerSerializationVisibility insieme a System.ComponentModel.DesignerSerializationVisibility.Content. Questo è dettagliato nel seguente link

System.ComponentModel.DesignerSerializationVisibility

Altri suggerimenti

Si dovrebbe essere in grado di accedere a grassetto, corsivo e così via come proprietà booleane:

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();

  }

La proprietà-ripartizione avviene automaticamente.

Se si dispone di un controllo che ha una proprietà che ha proprietà di un proprio

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

è possibile utilizzare la sintassi di Font-Bold nel aspx, il che significa che

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

funzioneranno come previsto. Tuttavia, completamento automatico non funziona, e non sono sicuro quale combinazione di System.ComponentModel attributi è necessario per rendere comportarsi come il Font-Bold.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top