2016-09-16 10 views
0

Я пытаюсь выделить полужирным шрифтом и выделить курсивом несколько строк в следующем примере, но он не работает. Можно ли изменить формат строки?C# String Форматирование словаря Intellisence

private TestQuickInfoSourceProvider m_provider; 
    private ITextBuffer m_subjectBuffer; 
    private Dictionary<string, string> m_dictionary; 
    public TestQuickInfoSource(TestQuickInfoSourceProvider provider, ITextBuffer subjectBuffer) 
    { 
     m_provider = provider; 
     m_subjectBuffer = subjectBuffer; 

     //Methods and their description, good for unique keywords AKA QuickInfo words 
     m_dictionary = new Dictionary<string, string>(); 
     m_dictionary.Add("adapt", "<b> Process given file </b>\n" 

Это выход http://i.stack.imgur.com/smDUF.png

Что такое правильный способ форматирования строки?

Edit ///

Обнаружили простой способ сделать это с большим количеством данных через CSV.

+1

Как вы пишете выход и где? Пожалуйста, предоставьте остальную часть кода. – STLDeveloper

+0

@STLDeveloper Это явно расширение Visual Studio. Это похоже на некое всплывающее окно intellisense. – user3185569

+0

Привет, @STLDeveloper. Извиняюсь, да, это всплывающее окно intellisense, где наведение над определенной строкой/текстом даст нам всплывающее окно, чтобы сообщить нам что нибудь. Мне нужно смело заголовок этого процесса, чтобы у моей команды было легче понять некоторые строки. –

ответ

1

Важная часть вашего кода (который не входит в ваше сообщение) - это реализация метода AugmentQuickInfoSession. Я предполагаю, что вы сейчас просто возвращаете строковые значения из своего m_dictionary.

Получение результатов форматирования в QuickInfo требует немного больше работы. Давайте посмотрим на определение AugmentQuickInfoSession:

void AugmentQuickInfoSession(IQuickInfoSession existingQuickInfoSession, IList<object> quickInfoContent, out ITrackin) 

quickInfoContent список объекта. Если вы вернете String, он не будет отформатирован. Однако, если вы вернете объект TextBlock, вы можете включить форматированный текст.

Пример кода:

var textBlock = new TextBlock { TextWrapping = TextWrapping.NoWrap }; 

var boldRun = new Run("This is a bit of bold text."); 
boldRun.FontWeight = FontWeights.Bold; 
textBlock.Inlines.Add(boldRun); 

var normalRun = new Run("This is not very bold.); 
textBlock.Inlines.Add(normalRun); 

... 

quickInfoContent.Add(textBlock); 
+0

Привет! @ paul-jan Спасибо, что помогли мне, я провел некоторое исследование, и я столкнулся с функцией fontStyle. Мне было интересно, можно ли форматировать определенную строку для разных цветов? Такие, как m_dictionary.Add ("продолжить", "остановит выполнение текущего цикла и продолжить со следующим \ N" + "Синтаксис: #continue \ N" ); Один пример: «продолжать» быть синим, а остальная часть строки - другого цвета? Я пытаюсь получить информацию об указателе quickinfo/mouse более легко на глазах. –

+0

Если подход с несколькими запусками в TextBlock работает, то все, что вам нужно сделать, это поместить «продолжить» в Run of its own и установить run.ForeGround на Brush.Navy (или любой цвет, который вы желаете). –

+1

Спасибо! Мне удалось решить мою проблему! Cheers @ Paul-Jan –

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

  • Нет связанных вопросов^_^