0

我有一个 Treeview 和一个 Textblock,它们都使用 MVVM 填充了来自后端的数据。TextBlock 包含格式化的十六进制字符串(它看起来像这样:

0000: ad 是 e6 00 25 00 00 00 9e 7b 3b 04 40 01 db 07
0016: 03 04 0a 00 00 39 e0 00 00 05 1d 27 31 81 00 2d
0032: 00 01 120 10 c ab 40 0 01 c 00 03 8c 09

每个 Tree 节点对象(视图模型)都有一个 startByte(突出显示应该从哪里开始)和 ByteLength(要突出显示的字节长度)属性。我需要实现的是当点击树节点时,需要根据上面提到的两个属性突出显示相关的十六进制字符串(Textblock中整个十六进制字符串的一部分)。如果你使用过 Wireshark,你就会知道我在说什么。

4

2 回答 2

0

我会尝试使用带有 的 TextBoxIsReadonly="True"以及 style\control 模板来删除文本周围的任何框架。为了防止用户输入,我会做IsHitTestVisible="False".

然后,我将使用文本框的选择来突出显示(在代码中)。

这有局限性,主要是您只能选择一个“跨度”文本。

于 2012-05-10T03:24:05.160 回答
0

我已经使用 TextRange 及其 ApplyPropertyValue 方法来设置 TextElement.BackgroundProperty 来解决我的问题。如果有人在类似问题上需要帮助,我想我可以提供一些建议。

于 2012-05-11T20:31:09.590 回答