Свойства конструктора свойств пользовательского элемента управления

Для C# UserControl в Windows Mobile (хотя, пожалуйста, ответьте, знаете ли вы, что для полной 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.

Ответов (3)

Решение

Это полезно для вас? Я не занимаюсь разработкой CF, но похоже, что вам нужно добавить некоторые метаданные XML, чтобы включить его:

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

Интересно читать ... Похоже, что из CF было исключено много времени на разработку, потому что вы не разрабатываете их на устройствах ... Что кажется мне немного странным ... Не могу представить себе использование КПК в качестве средства разработки!

Прокрутите вниз примерно наполовину, чтобы найти хорошие вещи;)

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.

Статья не предполагает, что кто-то проектирует устройство. Однако при создании проекта Compact Framework для обработки визуализации во время разработки используется компактная платформа (для настольного ПК). Если вы думаете об этом, вы этого и ожидаете. Одна и та же структура (или почти такая) используется для рендеринга как на вашем ПК во время разработки, так и позже на устройстве во время выполнения. Проблема в том, что атрибуты времени разработки не были добавлены в компактную структуру (я предполагаю, чтобы уменьшить размер).