在 WPF RichTextBox 中将特定文本设置为粗体

2023-12-19

我正在扩展 WPF Richtextbox 的功能。我希望某些文本在输入时变为粗体。我能够将某些文本变为粗体,但粗体单词后面的文本也会变为粗体...

这是我的代码示例:

private bool _Running = false;
void CustomRichTextBox_TextChange(object sender, TextChangedEventArgs e)
{
    if(_Running)
        return;
    _Running = true;

    //Logic to see if text detected

    //Logic to get TextPointers

    //Logic to get TextRange
    var boldMe = new TextRange(textPointer1, textPointer2);
    //Bold text
    boldMe.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold);

    _Running = false;
}

I want:

非粗体 非粗体BOLDED不加粗

但我得到的是:

非粗体 非粗体粗体 非粗体

**请注意,打字时它会变成粗体。

如何防止粗体字后面的文本也变成粗体?


不是重复的问题,因为所提供的链接接受的解决方案适用于 WinForms,其余的解决方案适用于预设文本。


经过多次测试,我找到了一个简单的解决方案。

CaretPosition = CaretPosition.GetPositionAtOffset(0, LogicalDirection.Forward);

这会将插入符号设置为正确的方向,从而防止 BOLD 设置在 Run 对象中继续。

if(textPointerEnd.GetNextInsertionPosition(LogicalDirection.Forward) == null)
    new Run("", textPointerEnd);

这会将 Run 对象添加到位于 Paragraph 对象末尾的新 Bold 对象的末尾。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 WPF RichTextBox 中将特定文本设置为粗体 的相关文章

  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var

随机推荐

  • Objective-c 多播委托

    我在 xcode 中创建新的选项卡式视图项目 在 appdelegate 中我创建了一个协议 h file protocol myProtocol
  • 在 Java 中从 json 文件中删除 json 对象

    我有一个在线下载的 json 文件 price 1 empty 0 0 0 0 0 lowValue 0 highValue 0 我想删除其中的所有内容 空的 to 我花了几个小时研究正则表达式的东西 但我似乎不知道如何让它做我想做的事情
  • 在两个数组中查找唯一元素索引的 Pythonic 方法

    我有两个类似于这些的已排序的 numpy 数组 x np array 1 2 8 11 15 y np array 1 8 15 17 20 21 元素在同一个数组中永远不会重复 我想找出一个办法蟒蛇找出包含数组中存在相同元素的位置的索引列
  • Appcelerator Titanium:代码签名错误:未找到代码签名身份

    这让我发疯 我现在花了大约 10 个小时删除和重新生成我的 Appcelerator Titanium iPad 应用程序的 Apple 密钥和配置文件 一年前我已经完成了所有工作和编译 然后我的 Mac 崩溃了 我不得不重新格式化并重新开
  • “jmeter”不被识别为内部或外部命令、可操作程序或批处理文件

    当我在命令行模式下运行 JMeter 脚本时 出现以下错误 但相同的脚本在 GUI 模式下运行得非常好 这里需要一些帮助来解决这个问题 下面是错误 C Users Sundarapandiyan gt jmeter n t D JMETER
  • 将列表中找到的 ID 添加到 pandas 数据框中的新列

    假设我有以下数据框 一列整数和一列包含整数列表 ID Found IDs 0 12345 15443 15533 3433 1 15533 2234 16608 12002 7654 2 6789 43322 876544 36789 还有
  • 如何在 Ruby on Rails 中解析翻译后的日期?

    我已经在 Ruby on Rails 中配置了一个应用程序 并将其翻译为西班牙语 现在我需要解析翻译后的日期 例如 Jueves 2012 年 11 月 22 日 我正在尝试这样做 Date strptime Jueves 22 de No
  • python:来自多个字典的联合键?

    我有 5 个字典 我想要它们的键的并集 alldict dict1 dict2 dict3 dict4 dict5 I tried allkey reduce lambda x y set x keys union y keys alldi
  • 如何在没有 foreach 的情况下使用 PHP 生成器?

    这是一个简单的 JavaScript 生成器 通过 http blog carbon Five com 2013 12 01 hanging up on callbacks generators in ecmascript 6 http b
  • 使用 $in 查询更新 mongodb?

    我有三个数组 coupon ids id counter 和increase ctr 现在 任何索引处的 coupon id 值都出现在 id counter 和increase ctr 中的同一索引处 因此 对于 coupon id 58
  • 拖放 Datagridview Winform C# 的行

    我想将行从同一网格视图中的某个位置拖动到另一个位置 其他行应根据拖放自动调整 谢谢 在应用程序中进行拖放操作时 我更喜欢使用鼠标事件而不是实际的拖放事件 1 未绑定示例 这是一个简单的示例 使用鼠标事件在显示行时拖动行Cell值在一个Lab
  • 扩展 Doctrine Entity 以添加业务逻辑

    我正在尝试实践良好的设计并扩展 Doctrine 实体 我的扩展类 基本上是模型 将具有额外的业务逻辑 对实体基本数据的访问 我正在使用 Doctrine 2 2 1 和 Zend Framework 1 11 4 和 php 5 3 8
  • Google Sheet 脚本显然没有返回数字

    我正在用 Google Script 编写我的第一个自定义函数 一切都在调试中运行良好 我的代码运行 显然 完美 已经写了一个函数 CONVERT RACETIME TO SECONDS 它接受特定格式的字符串 然后返回秒数 然后 该函数应
  • 如何快速了解 SQLite 中的表结构?

    是否有类似 显示 TABLENAME 中的列 之类的命令 我只知道 dump 命令 但在这种情况下这真的很愚蠢 它还会输出所有数据 我需要一些东西来查看表结构 你需要使用一个PRAGMA http www sqlite org pragma
  • Angular 2:在所有组件中使用的函数

    我有一个 Angular 2 webpack 项目 其中目前有一些在多个组件中重复的功能 我想从 主 类或组件 以有效者为准 继承所有这些组件 以便能够从所有需要它们的组件中调用我的函数 举个例子 如果我在 3 个不同的组件中有一个函数 f
  • android studio 下载 windows XP

    我一直在尝试下载Android Studio过去一周左右 但一直没能做到 我还在奔跑windows XP on a Dell d430 如果有帮助的话 提取文件时发生错误 如果您可以提供一个可以下载 android studio 的链接Wi
  • 如何确定我们来自哪个活动?

    老体育你好 到目前为止 我有 3 项活动如下 活动A 活动B 活动C 在活动 A 中 我创建了前往活动 C 的意图 Intent intent new Intent getActivity C class startActivity int
  • 如何更新“更新程序”? (C#)

    我有一个由两个程序组成的程序 Updater 和 WorkMaker 每当 WorkMaker 有更新时 更新程序都会终止它 下载更新 然后再次运行它 但假设我想出了新的更新程序 我该如何更新它 通过WorkMaker 通过第三个程序 谢谢
  • 如何获取行中的所有非空单元格数据 - Google Sheets 脚本编辑器

    我不确定这是否可能 而且说实话 我没有尝试很多事情 因为我不知道从哪里开始 顺便说一句 我正在使用 Google Sheets 中的脚本编辑器 我知道有 SpreadsheetApp getRange 和另一个来获取值或类似的东西 但我想要
  • 在 WPF RichTextBox 中将特定文本设置为粗体

    我正在扩展 WPF Richtextbox 的功能 我希望某些文本在输入时变为粗体 我能够将某些文本变为粗体 但粗体单词后面的文本也会变为粗体 这是我的代码示例 private bool Running false void CustomR