2012-09-17 176 views
1

我很難將Style屬性添加到UserControl。當我嘗試查看消費者頁面時有一個解析器異常。將樣式屬性添加到UserControl

private Style _headerStyle = new Style(); 
public Style HeaderStyle 
{ 
    get { return _headerStyle ; } 
    set 
    { 
     _headerStyle .CopyFrom(value); 
    } 
} 

用法:

Style="border: 1px solid blue;" 

錯誤:

Cannot create an object of type 'System.Web.UI.WebControls.Style' from its string representation ... 
+0

我編輯了自己的冠軍。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

@John。感謝您的糾正。 –

+0

我不明白爲什麼它被拒絕。我只是想知道答案。沒有別的。 –

回答

0

找你想要創建一個ASP.NET Style但在宣佈一個CSS樣式,這就是問題所在。如果你想申請一個ASP.NET風格,你需要調用ApplyStyle方法代替:

control.ApplyStyle(styleName); 
+0

感謝您的回覆。事實上,我正在尋找讓我暴露Style屬性的方式。 –

1

一個Style實例不是一個字符串,反之亦然。 Style.CopyFrom需要一個Style作爲參數,並且您傳遞的是String。這就是它無法複製到新樣式對象的原因。

如果你想給你的用戶控件邊框編程:

myControl.HeaderStyle.BorderStyle = BorderStyle.Solid; 
myControl.HeaderStyle.BorderWidth = new Unit(1); 
myControl.HeaderStyle.BorderColor = System.Drawing.Color.Blue; 
+0

感謝您的回覆,但我正在尋找的是如何將Style屬性暴露給UserControl的使用者。我想模仿System.Web.UI.WebControls.WebControl.Style屬性。 –