Довольно просто добавить пользовательское определение цвета в категорию «Текстовый редактор» диалогового окна «Шрифты и цвета», используя расширение.Обычно он просто определяет и экспортирует новый тип классификации и определение редактора и украшает его атрибутом UserVisible (true).Вот пример.
public static class OutputClassificationDefinitions
{
[Export]
[Name("SomeName")]
public static readonly ClassificationTypeDefinition BuildHeaderDefinition;
[Name("SomeName")]
[UserVisible(true)]
[Export(typeof(EditorFormatDefinition))]
[ClassificationType(ClassificationTypeNames = "SomeName")]
public sealed class BuildHeaderFormat : ClassificationFormatDefinition
{
public BuildHeaderFormat()
{
ForegroundColor = Properties.Settings.Default.BuildHeaderForerground;
BackgroundColor = Properties.Settings.Default.BuildHeaderBackground;
}
}
«SomeName» отображается в диалоговом окне «F & C» в категории «Текстовый редактор».Если пользователь меняет цвет «SomeName», он запоминается, и карта формата редактора обновляется для использования нового цвета.
Я хочу сделать аналогичную вещь для окна вывода.Вы можете написать классификатор для окна вывода, и он работает просто отлично.Я получил идею из другого поста здесь, в StackOverflow, и он работает блестяще.
Однако новые определения цвета отображаются в категории «Текстовый редактор», а не в категории «Окно вывода», что было бы предпочтительным.Еще более раздражает то, что пользовательские изменения цвета не обновляют formatMap окна вывода, а это означает, что новые цвета не вступают в силу.
Я попытался обновить formatMap самостоятельно следующим образом:
[Import]
internal IClassificationFormatMapService ClassificationFormatMapService;
var formatMap = ClassificationFormatMapService.GetClassificationFormatMap(FontsAndColorsCategory.Outputwindow);
var type = ClassificationRegistry.GetClassificationType("SomeName");
formatMap.AddExplicitTextProperties(type, formatMap.GetExplicitTextProperties(type));
Это не работаетНикаких исключений или ошибок не возникает, просто ничего не происходит.
Есть ли возможность добавить мои пользовательские определения в категорию «Окно вывода» диалога F & C и, что более важно, сделать так, чтобы изменения обновили выводокно