用户控件属性设计器属性

时间:2008-08-12 11:25:41

标签: c# user-controls windows-mobile

对于Windows Mobile上的C#UserControl(如果你知道完整的Windows,请回答它可能有效)如何更改Control的公共属性之一的Designer Properties窗口中显示的内容。例如:

private Color blah = Color.Black;

public Color Blah
{
    get { return this.blah; }
    set { this.blah = value; }
}

这显示控件,但它在“Misc”类别中,没有描述或默认值。我尝试使用System.ComponentModel中的设置,如“DesignerCategory”,例如:

[DesignerCategory("Custom")]

但是说这只对类声明有效......可以发誓它是我以前用过的System.ComponentModel项目......

更新

@John说:

  

DesignerCatogy用于表示是否   class是一个表单,组件等。

     

试试这个:

     

[类别( “自定义”)]

我需要使用特定的命名空间才能获得这些命名空间吗? 我已经完全尝试了这些并且编译器无法识别它们。

在.NETCF中,我似乎可以从System.ComponentModel获得所有内容:

DataObject,
DataObjectMethod,
DefaultValue,
DesignerCategory,
DesignTimeVisible,
EditorBrowsable

唯一没有尖叫的是EditorBrowsable

3 个答案:

答案 0 :(得分:3)

DesignerCatogy用于表示该类是否为表单,组件等。

对于完整窗口,您需要的属性是:

[System.ComponentModel.Category( “自定义”)]

并且对于描述你可以使用[System.ComponentModel.Description(“这是描述”)]

同时使用

[System.ComponentModel.Category(“Custom”),System.ComponentModel.Description(“这是描述”)]

然而,这是system.dll的一部分,对于Windows mobile可能会有所不同。

答案 1 :(得分:2)

这对您有用吗?我不参与CF开发,但看起来您需要添加一些XML元数据来启用它:

http://blogs.msdn.com/bluecollar/archive/2007/02/08/adding-compact-framework-design-time-attributes-or-more-fun-with-textboxes.aspx

有趣的阅读..看起来很多设计时间的支持被CF剥离了,因为你没有在设备上设计它们。这对我来说似乎有点奇怪..无法想象使用掌上电脑作为开发平台!

向下滚动大约一半的好东西;)

答案 2 :(得分:0)

该文章并未暗示任何人正在设计该设备。但是,在创建Compact Framework项目时,紧凑框架(用于桌面PC)用于处理设计时渲染。如果您认为这是您所期望的。使用相同的框架(或几乎如此)在设计时在PC上进行渲染,然后在运行时在设备上进行渲染。问题是设计时属性没有添加到紧凑框架中(我假设减小了大小)。