2016-07-24 1 views
1

에 새로운 블록을 추가하고 일치하는 경우 텍스트가 굵은해야한다 :RichTextBlock 내가 단어가 일치하지 않는 경우 <code>RichTextBlock</code>에 새로운 정상 <code>Run</code>을 추가하고 싶습니다 루프

if (InnerTextofCell == "TEXT") 
{ 
    rtb2.Blocks.Add(new Paragraph (new Run { FontWeight = FontWeights.Bold, Text = innerTextOfCell })); 
} 
else 
{ 
    rtb2.Blocks.Add(new Paragraph (new Run { Text = innerTextOfCell })); 
} 

유일한 문제의 I 있다, Paragraph에는 1 개의 인수를 포함하는 생성자가 없습니다.

누군가 해결책이 있습니까? 또한 루프가 foreach이므로 반복되는 경우가 많습니다.

답변

0

, 당신은 Inlines 속성 (이 당신이 실행 추가) 읽기 전용 것을 알 수 있습니다. 따라서 생성자에서 이들을 추가 할 수 없습니다. 한 가지 가능한 솔루션은 다음과 같은있다 :

var paragraph = new Paragraph(); 
var run = new Run { Text = innerTextOfCell }; 

if (InnerTextofCell == "TEXT") 
{ 
    run.FontWeight = FontWeights.Bold; 
} 

paragraph.Inlines.Add(run); 
rtb2.Blocks.Add(paragraph); 

당신의 ParagraphRun 개체를 만들고 텍스트를 굵게 할 경우 확인하고 그들이 RichTextBlock에 추가 할 수 있습니다.

foreach 루프에 대해 이야기하고 있으므로 이후 디자인 (한 줄에 텍스트 또는 여러 줄에 쌓여 있음)에 따라 Paragraph 개체를 다시 사용할 수도 있습니다. 그러면 코드는 다음과 유사하게됩니다 :

var paragraph = new Paragraph(); 

foreach(...) 
{ 
    var run = new Run { Text = innerTextOfCell }; 

    if (InnerTextofCell == "TEXT") 
    { 
     run.FontWeight = FontWeights.Bold; 
    } 
} 

paragraph.Inlines.Add(run); 
rtb2.Blocks.Add(paragraph); 
0

나는 당신이 단순히이 문제를 해결하기 위해 할 수 있다고 생각 : 당신이 Paragraph 객체를 보면

if (InnerTextofCell == "TEXT") 
{ 
    rtb2.Blocks.Add(new Paragraph (new Run { FontWeight = FontWeights.Bold, Text = innerTextOfCell })); 
} 
else 
{ 
    rtb2.Blocks.Add(new Paragraph (new Run { FontWeight = FontWeights.Normal, Text = innerTextOfCell })); 
} 
+0

'단락에는 1 개의 인수를 취하는 생성자가 포함되어 있지 않습니다.'오류는'Paragraph' throws –

관련 문제