C# “再创造”;“字体”;财产行为
继承自C# “再创造”;“字体”;财产行为,c#,asp.net,intellisense,web-controls,system.componentmodel,C#,Asp.net,Intellisense,Web Controls,System.componentmodel,继承自System.Web.UI.WebControls.WebControl的控件有一个名为Font的属性。类型为System.Web.Ui.WebControls.FontInfo 在设计器中使用这些控件时,它将Font属性分解为多个属性,如Font-Bold、Font-Italic等。在codebehind中使用这些相同的网络控件时,只有Font属性(无Font-Bold、Font-Italic等) 在创建WebControl时,如何手动重新创建此行为?具体来说,System.Compon
System.Web.UI.WebControls.WebControl
的控件有一个名为Font
的属性。类型为System.Web.Ui.WebControls.FontInfo
在设计器中使用这些控件时,它将Font
属性分解为多个属性,如Font-Bold
、Font-Italic
等。在codebehind中使用这些相同的网络控件时,只有Font
属性(无Font-Bold
、Font-Italic
等)
在创建WebControl时,如何手动重新创建此行为?具体来说,
System.ComponentModel
属性的什么组合可以在Intellisense中显示/隐藏这些属性?您应该能够访问粗体、斜体等布尔属性:
属性崩溃正在自动发生 如果控件的属性具有自己的属性
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"/>
将按预期工作。但是,autocomplete不起作用,我不确定需要哪个
System.ComponentModel
属性组合才能使其表现为粗体字体。您要扩展的属性(在本例中为Font
)应将属性System.ComponentModel.DesignerSerializationVisibility
设置为System.ComponentModel.DesignerSerializationVisibility.Content
。下面的链接详细介绍了这一点
对。但是字体属性不会在设计器模式下显示,只在代码隐藏中显示。此外,粗体字体、斜体字体等不会显示在代码后面,只显示在设计器模式下。我希望能够在我的网络控件上创建这样的属性。啊~我不知道它会自动提供这些扩展属性。实际上,此时的问题是
System.ComponentModel
属性的什么组合会导致继承自System.Web.UI.webcontrols.WebControl的webcontrols中的行为
<cc:ServerControl1 runat="server" ID="scOne"
Composite-ItemOne="true" Composite-ItemTwo ="stringx"/>