Вопрос

Контролирует, что наследуют от System.Web.UI.WebControls.WebControl иметь собственность под названием Font. Анкет Тип есть System.Web.Ui.WebControls.FontInfo.

При работе с этими элементами управления в дизайнере он разбивает Font свойство в многочисленные свойства, такие как Font-Bold, Font-Italic, и т. д. при работе с этими же веб -контролями в коде, есть только Font собственность (нет Font-Bold, Font-Italic, и т.д).

Как это поведение может воссоздаться вручную при создании веб -контролей? В частности, какая комбинация System.ComponentModel Атрибуты могут показать/скрыть эти свойства в Intellisense?

Это было полезно?

Решение 3

Собственность, которую вы хотели бы расширить (Font в этом случае) должен иметь атрибут System.ComponentModel.DesignerSerializationVisibility установлен в System.ComponentModel.DesignerSerializationVisibility.Content. Анкет Это подробно описано в следующей ссылке

System.componentmodel.designererializationvisibility

Другие советы

Вы должны быть в состоянии получить доступ к жирным шрифтам, курсивному и т. Д. В качестве логических свойств:

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

  }

Разрушение свойств происходит автоматически.

Если у вас есть контроль, у которого есть свойство, которое имеет собственные свойства

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

Вы можете использовать синтаксис Font Bold в ASPX, что означает, что

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

будет работать, как и ожидалось. Однако автозаполнение не работает, и я не уверен, какая комбинация System.ComponentModel Атрибуты необходимы, чтобы он вести себя как разделка шрифта.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top