2014-09-21 4 views
2

Мне не удалось найти документацию по этому поводу в основном из-за того, что я не знаю, что точно для поиска. Но я видел, как это было сделано раньше, поэтому я смог получить некоторые свойства, которые будут отображаться на панели свойств в Visual Studio, однако теперь мне нужно добавить свойство с дополнительными свойствами в панели свойств. Я вернусь на первый план - не зная, что искать и не в состоянии его реализовать, потому что я не могу найти соответствующую информацию.Пользовательское свойство с дополнительными свойствами в области свойств Visual Studio

В панели свойств для большинства элементов управления, вы увидите следующее:

Appearance

  • BackColor
  • ForeColor
  • шрифт
    • Семейство шрифтов
    • Размер шрифта , и т. д.

я уже могу это сделать:

Внешний вид

  • BackColor
  • ForeColor
  • Hooray Цвет

Но теперь мне нужно что-то как стандартный Font pro Perty (добавить свойство, но затем подсвойство, которые расширяемые/складные, например:

enter image description here

В настоящее время единственным способом я знаю, чтобы получить пользовательское свойство в панели свойств в VS это сделать что-то вроде этого:

public Boolean isBaeltazorAwesome { get; set; } 

И это покажет единственное свойство в области свойств. Но мне нужно что-то вроде на рисунке ниже, где вы можете расширить свойство Font и получить еще некоторые редактируемые под-свойства.

Как это можно сделать?

Я знаю, что поиск ссылок/ресурсов за пределами сайта «вне темы», но если вы знаете, что я был бы признателен, если бы вы могли поделиться. Я просто не знаю, как искать определенные вещи, когда я не знаю, какую терминологию использовать. Это странно или что?

ответ

1

Вы могли бы попытаться определить атрибут TypeConverter для объявления типа вашего пользовательского имущества:

[TypeConverter(typeof(MyPropertyConverter))] 
public struct MyProperty 
{ 
    ... 
} 

public class MyPropertyConverter : TypeConverter 
{ 
    public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, Object value, Attribute[] attributes) 
    { 
     PropertyDescriptorCollection collection = TypeDescriptor.GetProperties(typeof(MyProperty)); 
     // Reorganize the collection of sub-properties 
     return collection; 
    } 

    // overrides of the methods: CanConvertTo, ConvertTo, CanConvertFrom, ConvertFrom etc 
} 

Смотрите пример: Implementing TypeConverter for Windows Forms

Смежные вопросы