题
对于 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 元数据才能启用它:
有趣的读..看起来 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 上进行渲染,然后在运行时在设备上进行渲染。问题是设计时属性没有添加到紧凑框架中(我假设是为了减小尺寸)。