2010-06-25 82 views
2

繼承關閉System.Web.UI.WebControls.WebControl的控件具有名爲Font的屬性。這種類型是System.Web.Ui.WebControls.FontInfo重新創建「字體」屬性行爲

當這些控件在設計師的工作,它打破了Font財產分成多個屬性,如Font-BoldFont-Italic等。當在代碼隱藏這些相同的器WebControls工作,這裏只有一個Font財產(不Font-BoldFont-Italic,等等)。

創建WebControls時如何手動重新創建此行爲?具體而言,System.ComponentModel屬性的哪些組合可以在Intellisense中顯示/隱藏這些屬性?

回答

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 2010-06-25 13:29:41

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 2010-06-25 15:38:59