10

对于 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 项...

更新:

@John 说:

DesignerCatogy 用于说明该类是否为表单、组件等。

试试这个:

[类别(“自定义”)]

我需要使用特定的命名空间来获取它们吗?我已经完全尝试过了,编译器无法识别它们。

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

DataObject,
DataObjectMethod,
DefaultValue,
DesignerCategory,
DesignTimeVisible,
EditorBrowsable

唯一不会尖叫的是 EditorBrowsable

4

3 回答 3

6

DesignerCategory用于表示类是否为表单、组件等。

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

[System.ComponentModel.Category("Custom")]

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

两者一起使用:

[System.ComponentModel.Category("Custom"),System.ComponentModel.Description("This is the description")]

但是,system.dll这对于 Windows Mobile 可能有所不同。

于 2008-08-12T11:29:40.610 回答
4

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

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

有趣的阅​​读.. 看起来很多设计时支持都从 CF 中剥离出来,因为您没有在设备上设计它们.. 这对我来说似乎有点奇怪.. 无法想象使用手持设备作为开发平台!

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

于 2008-08-12T11:51:49.753 回答
0

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

于 2009-08-28T04:23:57.197 回答