본문 바로가기
프로그램/C#

RichTextBox 에서 특정 단어 강조하기

by 로드러너 2017. 4. 18.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

영상을 재생할때 자막의 특정 어휘만 강조하고 싶어서 구글링을 해 보았으나 마땅히 좋은 방법을 찾지 못하다가

약간의 꼼수로 원하는 결과를 얻을 수 있었다.


[XAML]


<RichTextBox Name="Subtitle"/>



[C# 코드]


string sub = "손님? 무슨 손님?";

string keyWord = "손님";


string[]text = sub.Replace(keyWord, "|").Split('|');


//RichTextBox를 비운다.

TextRange range = new TextRange(Subtitle.Document.ContentStart, Subtitle.Document.ContentEnd);

range.Text = string.Empty;


//배열을 순차적으로 조합해서 문자열을 만든다.

for (int i = 0;i < text.Length;i++)

{

    TextRange rangeOfText1 = new TextRange(Subtitle.Document.ContentEnd, Subtitle.Document.ContentEnd);

    rangeOfText1.Text = text[i];

    rangeOfText1.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.White);


    if (i < (text.Length - 1))

    {

        //키워드를 강조한다.

        TextRange rangeOfKeyWord = new TextRange(Subtitle.Document.ContentEnd, Subtitle.Document.ContentEnd);

        rangeOfKeyWord.Text = keyWord ;

        rangeOfKeyWord.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Yellow);

    }

}



[결과]

 손님? 무슨 손님