用户控件属性设计器属性
对于Windows Mobile上的CUserControl(尽管请回答,如果我们知道它适用于完整的Windows ...可能会起作用),如何更改控件的公共属性之一在Designer Properties窗口中显示的内容。例如:
private Color blah = Color.Black; public Color Blah { get { return this.blah; } set { this.blah = value; } }
这将为控件显示,但在"其他"类别中,没有描述或者默认值。我尝试使用System.ComponentModel中的设置,例如" DesignerCategory",例如:
[DesignerCategory("Custom")]
但是说这仅对类声明有效...可以发誓这是我之前使用的System.ComponentModel项...
更新:
@约翰说:
DesignerCatogy is used to say if the class is a form, component etc. Try this: [Category("Custom")]
是否有我需要使用的特定名称空间才能获得那些名称空间?
我已经完全尝试过了,编译器无法识别它们。
在.NETCF中,我似乎可以从System.ComponentModel获得的全部是:
DataObject, DataObjectMethod, DefaultValue, DesignerCategory, DesignTimeVisible, EditorBrowsable
唯一不会尖叫的是EditorBrowsable
解决方案
回答
DesignerCatogy用于说明类是否为表单,组件等。
对于全窗口,我们需要的属性是:
[System.ComponentModel.Category("自定义")]
对于描述,我们可以使用[System.ComponentModel.Description("这是描述")]
一起使用
[System.ComponentModel.Category(" Custom"),System.ComponentModel.Description("这是描述")]
但是,这是system.dll的一部分,对于Windows Mobile来说可能有所不同。
回答
这对我们有用吗?我不从事CF开发,但是我们似乎需要添加一些XML元数据来启用它:
http://blogs.msdn.com/bluecollar/archive/2007/02/08/adding-compact-framework-design-time-attributes-or-more-fun-with-textboxes.aspx
有趣的读法。似乎从CF中剥夺了很多设计时间支持,因为我们没有在设备上进行设计。对我来说这似乎有点怪异。无法想象使用手持设备作为开发平台!
向下滚动大约一半以获取好东西;)
回答
本文不建议任何人在设备上进行设计。但是,当我们创建一个Compact Framework项目时,该紧凑型框架(用于台式机)将用于处理设计时渲染。如果我们考虑一下,这就是期望。使用相同的框架(或者几乎如此)在设计时在PC上进行渲染,然后在运行时在设备上进行渲染。问题在于设计时间属性未添加到紧凑框架中(我认为是为了减小尺寸)。