0

TreeviewとTextblockがあり、どちらもMVVMを使用してバックエンドからのデータを入力しています。TextBlockには、フォーマットされた16進文字列が含まれています(次のようになります)。

0000:ad be 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 12 d3 ab 4f 00 01 01 c4 00 00 00 03 8c 09

各ツリーノードオブジェクト(viewmodel)には、startByte(ハイライトが開始する場所)およびByteLength(ハイライトされるバイトの長さ)プロパティがあります。ツリーノードをクリックするときに達成する必要があるのは、関連する16進文字列(テキストブロック内の16進文字列全体の一部)を上記の2つのプロパティに基づいて強調表示する必要があることです。Wiresharkを使用したことがある場合は、ここで私が何について話しているかがわかります。

4

2 に答える 2

0

TextBox とIsReadonly="True"style\control テンプレートを使用して、テキストの周りのフレームを削除してみます。ユーザー入力を防ぐために、私はそれを作りますIsHitTestVisible="False"

次に、テキスト ボックスの選択を使用して (コードで) ハイライトを作成します。

これには制限があります。主な制限は、テキストの「スパン」を 1 つだけ選択することです。

于 2012-05-10T03:24:05.160 に答える
0

TextRange とその ApplyPropertyValue メソッドを使用して TextElement.BackgroundProperty を設定し、問題を解決しました。誰かが同様の質問で助けが必要な場合は、いくつかの提案を提供できると思います.

于 2012-05-11T20:31:09.590 に答える