当与RichTextBox一起使用时,ApplyPropertyValue()有什么用处

时间:2012-12-06 22:56:58

标签: c# wpf .net-4.0

显然,当我在ApplyPropertyValue()上使用RichTextBox功能时,Selection.Select停止正常工作。 我有一个RichTextBox填充了一些文本。

string selectText(int index, int length)
        {
            TextRange textRange = new TextRange(TB.Document.ContentStart, TB.Document.ContentEnd);
            if (textRange.Text.Length >= (index + length))
            {
                TextPointer start = textRange.Start.GetPositionAtOffset(index, LogicalDirection.Forward);
                TextPointer end = textRange.Start.GetPositionAtOffset(index + length, LogicalDirection.Backward);
                TB.Selection.Select(start, end);
                return TB.Selection.Text;
            }
            return null;
        }
display.Text = selectText(6, 8);
// display contains the string "arranged"
TB.Selection.ApplyPropertyValue(RichTextBox.ForegroundProperty, "Red");
// display now contains the string "arrang" (should be "arranged")
display.Text = selectText(6, 8);

display是一个TextBlock,用于显示变量值以进行调试,TB是RichTextBox。

如果在没有ApplyPropertyValue()的情况下使用,

selectText(i,length)函数可以正常工作,并且始终返回TB中文本的正确子字符串。

执行上述代码后,display包含“arrang”而不是“arrange”。另外,如果我删除ApplyPropertyValue()语句,display将按预期包含“已排列”。

ApplyPropertyValue()是什么东西?我在这里错过了什么吗?

0 个答案:

没有答案