场景
我目前正在开发一个应用程序。在这个应用程序中,我有一个TextBox/RichTextBox。我还没有决定控制。在此控件中,将有几段文本。
Problem我希望能够使用两个给定的数字突出显示一行中的一系列行或特定字符。做这件事最简单的方法是什么?
发布于 2015-03-16 12:09:53
使用RichTextBox。您不能使用TextBox,这是因为TextBox只有一种样式应用于所有文本。
使用TextRange.ApplyPropertyValue方法。TextRange由其起始位置和结束位置指定,这两个位置是两个TextPointer。
就像这样
var startingPos = RichTextBox1.ContentStart.GetPositionAtOffset(n1, LogicalDirection.Forward);
var endingPos = startingPos.GetPositionAtOffset(n2 - n1, LogicalDirection.Forward);
var textrange = new TextRange(startingPos, endingPos);
textrange.ApplyPropertyValue(TextElement.BackgroundProperty, Brushes.DarkRed);您必须仔细计算开始和结束位置的偏移量,同时考虑到行间隔。
https://stackoverflow.com/questions/29075668
复制相似问题