我有一个Richtext框放在usercontrol中:
<RichTextBox Grid.Row="0" Grid.Column="1" ScrollViewer.HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
FontFamily="Courier New" FontSize="13" IsReadOnly="True" Margin="5,0" Name="richTxtBoxValue" >
<FlowDocument TextAlignment="Left">
<Paragraph>
<Run Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"> </Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
我现在需要更改此richtextbox中某些文本的颜色。我尝试了以下代码。但是我将startPos和endPos视为null。
var textRange = RichTxtBoxValue.Selection;
var start = RichTxtBoxValue.Document.ContentStart;
var startPos = start.GetPositionAtOffset(startPosition);
var endPos = start.GetPositionAtOffset(startPosition+1);
textRange.Select(startPos, endPos);
textRange.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Colors.Red));
我无法弄清楚我哪里出错了。