从System.Web.UI.WebControls.WebControl
继承的控件具有名为Font
的属性。类型为System.Web.Ui.WebControls.FontInfo
。
在设计器中使用这些控件时,会将Font
属性分解为多个属性,如Font-Bold
,Font-Italic
等。在代码隐藏中使用这些相同的WebControl时,只有Font
属性(没有Font-Bold
,Font-Italic
等)。
创建WebControl时如何手动重新创建此行为?具体来说,System.ComponentModel
属性的哪些组合可以在Intellisense中显示/隐藏这些属性?
答案 0 :(得分:1)
您应该能够以布尔属性访问Bold,Italic等:
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();
}
答案 1 :(得分: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中使用Font-Bold语法,意思是
<cc:ServerControl1 runat="server" ID="scOne"
Composite-ItemOne="true" Composite-ItemTwo ="stringx"/>
将按预期工作。但是,自动完成功能不起作用,我不确定需要哪种System.ComponentModel
属性组合才能使其行为类似于Font-Bold。
答案 2 :(得分:0)
您要展开的媒体资源(在这种情况下为Font
)应将属性System.ComponentModel.DesignerSerializationVisibility
设置为System.ComponentModel.DesignerSerializationVisibility.Content
。这在以下链接中详细说明