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

StackOverflow https://stackoverflow.com/questions/8691

Вопрос

Для пользовательского элемента управления C # в Windows Mobile (хотя, пожалуйста, ответьте, если вы знаете его полностью Windows...it может сработать), как вы изменяете то, что отображается в окне свойств конструктора для одного из общедоступных свойств элемента управления.Например:

private Color blah = Color.Black;

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

Это отображается для элемента управления, но оно находится в категории "Разное" и не имеет описания или значения по умолчанию.Я пробовал использовать настройки в системе.Компонентмодель типа "DesignerCategory", например:

[DesignerCategory("Custom")]

Но говорит, что это справедливо только для объявлений классов...могу поклясться, что это была система.Элементы 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.Категория ("Пользовательская")]

а для описания вы можете использовать [System.ComponentModel.Description("Это описание")]

использовать и то, и другое вместе

[System.ComponentModel.Категория ("Пользовательская"), System.ComponentModel.Описание ("Это описание")]

Однако это часть system.dll, которая может отличаться для Windows Mobile.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top