首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF RichTextBox -类型文本的格式设置

WPF RichTextBox -类型文本的格式设置
EN

Stack Overflow用户
提问于 2010-04-05 10:59:38
回答 1查看 2.2K关注 0票数 2

我正在将格式应用于WPF RichTextBox中选定的标记。为此,我得到了一个TextRange,它包含了我想要突出显示的标记。然后,我将更改文本的颜色如下:

代码语言:javascript
运行
复制
// Get start and end pointer for token
TextPointer startPointer = run.ContentStart.GetPositionAtOffset(startOffset);
TextPointer endPointer = run.ContentStart.GetPositionAtOffset(endOffset);

// Get text range for token
TextRange textRange = new TextRange(startPointer, endPointer);

// Highlight token
textRange.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Blue);

这发生在我的TextChanged事件的RichTextBox上。

格式按预期的方式应用,但继续键入文本将导致新文本继承已应用于相邻单词的格式。我希望任何新文本的格式使用RichTextBox属性中定义的默认格式设置选项。这个是可能的吗?

或者,我可以高亮显示我不希望使用默认格式选项的所有标记,但这让我感到很尴尬。

EN

Stack Overflow用户

发布于 2010-04-05 11:21:34

这不是标准的行为吗?如果我在Word中突出显示文本,使其粗体化,将光标移到文本旁边并键入,新文本也会变得粗体。我可以想象,MS使富文本框的工作方式类似于Word中的文本区域。

如果您基于匹配一些条件(例如语法高亮显示)来选择标记,那么在光标距标记1字符之后,您是否可以尝试将样式应用于文本?例如:

SomeToken _x

而不是

SomeToken=

其中|是游标。在第一个示例中,游标与令牌之间有一个空格,因此如果程序找到SomeToken,它将得到从S之前到(空格)的文本范围。我可以想象这种风格不会适用于新输入的文本。

我承认这只是猜测,我可能从你的问题描述中误解了你的确切情况。更多的代码可能会有所帮助,特别是您提到的TextChanged事件,或者创建文本范围的代码。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2577966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档