2

Элементы управления, унаследованные от System.Web.UI.WebControls.WebControl, имеют свойство Font. Тип System.Web.Ui.WebControls.FontInfo.Воспроизведение «Шрифта» Поведение свойства

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

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

ответ

0

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

System.ComponentModel.DesignerSerializationVisibility

1

Вы должны быть в состоянии получить доступ к полужирный, курсив и так далее, как булевы свойства:

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

    } 
+0

Право. Но свойство Font не отображается в дизайнерском режиме, только в коде позади. Кроме того, Font-Bold, Font-Italic и т. Д. Не отображаются в коде позади, только в режиме дизайнера. Я хочу, чтобы иметь возможность создавать свойства на моем webcontrols, которые ведут себя таким образом. – SAGExSDX

1

Свойство пробоя автоматически происходит.

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

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

вы можете использовать шрифт-полужирный синтаксис в ASPX, а это означает, что

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

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

+0

А ~ Я не знал, что это автоматическое, что обеспечит эти расширенные свойства. На самом деле вопрос в этом вопросе заключается в том, какая комбинация атрибутов System.ComponentModel приведет к поведению, обнаруженному в webcontrols, наследующем от 'System.Web.UI.WebControls.WebControl' – SAGExSDX

Смежные вопросы