对于 Windows Mobile 上的 C# UserControl(尽管如果您知道完整 Windows 的情况,请回答...它可能有效),如何更改控件的公共属性之一的“设计器属性”窗口中显示的内容。例如:

private Color blah = Color.Black;

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

这显示了控件,但它位于“其他”类别中,并且没有说明或默认值。我尝试使用 System.ComponentModel 中的设置,例如“DesignerCategory”,例如:

[DesignerCategory("Custom")]

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

更新:

@约翰 说:

DesignerCatogy用于说明课程是否为形式,组件等。

尝试这个:

[类别(“自定义”)]

为了获得这些,我需要使用特定的命名空间吗?我已经尝试过这些,但编译器无法识别它们。

在 .NETCF 中,我似乎可以从 System.ComponentModel 获得的是:

DataObject,
DataObjectMethod,
DefaultValue,
DesignerCategory,
DesignTimeVisible,
EditorBrowsable

唯一不会尖叫的是 EditorBrowsable

有帮助吗?

解决方案

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

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

有趣的读..看起来 CF 中取消了很多设计时支持,因为您不在设备上设计它们。这对我来说有点奇怪..无法想象使用手持设备作为开发设备!

向下滚动大约一半即可找到好东西;)

其他提示

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

对于全窗口,您想要的属性是:

[System.ComponentModel.Category("自定义")]

对于描述,您可以使用 [System.ComponentModel.Description("This is the description")]

一起使用

[System.ComponentModel.Category("自定义"),System.ComponentModel.Description("这是描述")]

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

这篇文章并不建议任何人在该设备上进行设计。但是,当您创建 Compact Framework 项目时,紧凑框架(适用于台式电脑)用于处理设计时渲染。如果您考虑一下,这就是您所期望的。使用相同的框架(或几乎如此)在设计时在您的 PC 上进行渲染,然后在运行时在设备上进行渲染。问题是设计时属性没有添加到紧凑框架中(我假设是为了减小尺寸)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top