MVVM WPF Richtextbox更改文本颜色

时间:2014-12-05 07:55:03

标签: c# mvvm wpf-controls richtextbox

我有一个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));

我无法弄清楚我哪里出错了。

0 个答案:

没有答案