Воссоздание поведения на «шрифте»
-
29-09-2019 - |
Вопрос
Контролирует, что наследуют от 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
. Анкет Это подробно описано в следующей ссылке
Другие советы
Вы должны быть в состоянии получить доступ к жирным шрифтам, курсивному и т. Д. В качестве логических свойств:
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
Атрибуты необходимы, чтобы он вести себя как разделка шрифта.