2012-09-17 111 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属性。 –