2016-07-24 24 views
1

Ich möchte einen neuen normalen Run zum RichTextBlock hinzuzufügen, wenn das Wort nicht und übereinstimmt, wenn er den Text übereinstimmt sollte fett sein:RichTextBlock fügen Sie neue Blöcke in Schleife

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 })); 
} 

Das einzige Problem, das ich have is, Paragraph hat keinen Konstruktor, der 1 Argument enthält.

Hat jemand eine Lösung? Auch es ist in einer foreach Schleife, so wiederholt es oft.

Antwort

0

Wenn Sie an einem Paragraph Objekt suchen, Sie feststellen, dass die Inlines Eigenschaft (zu denen Sie hinzufügen Läufe) nur lesbar ist. Sie können diese also nicht im Konstruktor hinzufügen. Eine mögliche Lösung ist folgende:

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); 

Sie erstellen die Paragraph und Run Objekte zu prüfen, ob der Text fett zu sein hat, und fügen Sie sich die RichTextBlock.

Da es sich um eine foreach-Schleife handelt, können Sie das Paragraph-Objekt je nach dem Design, das Sie anstreben, erneut verwenden (Text in einer einzelnen Zeile oder in mehreren Zeilen). Ihr Code wäre dann ähnlich wie:

0

Ich glaube, Sie können einfach tun dies Ihr Problem zu lösen:

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

'" Absatz enthält keinen Konstruktor, die 1 Argument nehmen "', das ist der Fehler "Absatz" wirft –