繁体   English   中英

如何使用CssStyleCollection进行UserControl?

[英]How to use CssStyleCollection for a UserControl?

我想要自定义渲染CSS样式,因此我创建了一个新的UserControl。

从那里开始,我认为只需在Style名称下创建一个新的CssStyleCollection即可。 虽然它不起作用! 如何编译此代码? (只是一个例子)

class MyControl : UserControl{
  CssStyleCollection Style=new CssStyleCollection(); //compiler error on the `new..` 
}

我不明白我在做错了什么。 CssStyleCollection是一个密封类,但它不是静态的。 我如何实例化一个新的!?

另外,给出的编译器错误是

System.Web.UI.CssStyleCollection类型没有定义构造函数

CssStyleCollection是从Style对象创建的; Style对象有一个返回CssStyleCollection的GetStyleAttributes方法,因此创建一个Style对象,分配所需的所有道具,并返回CssStyleCollection。 此外,它需要IUrlResolutionService,它是对页面或控件的引用。

好的,技术上唯一正确的方法是破解.Net并使用反射来调用它的私有构造函数...请参阅http://bart-at-work.blogspot.com/2008/11/create-cssstylecollection-instance.html

好吧,我认为CssStyleCollection没有任何特别之处,所以我所做的是一个简单而优雅的黑客而没有反射。

CssStyleCollection Style=new Panel().Style;

我不确定它是多么“安全”,但它适用于.Net和Mono,所以它对我来说已经足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM