私の目標は、新しい依存関係プロパティ SearchText を持つカスタム TextBlock コントロールを作成することです。このプロパティには正規表現が含まれます。TextBlock のテキスト内のこの正規表現のすべての出現箇所は、カスタム スタイル (別の DP) を使用して強調表示されます。
私の現在の実装では、TextBlock の InlineCollection 内のすべての Inline オブジェクトをクリアしています。次に、ハイライトされていないテキストのランとハイライトされたテキストのランで TextBlock を塗りつぶします (この方法では、TextBlock に直接インラインを追加することはできません。代わりに、TextBlock.TextProperty を使用する必要があります)。
うまく機能しますが、インラインをクリアしようとすると、奇妙な例外が発生することがあります。
この問題はこれに関連しているようです。TextChanged 関数でインラインを変更していますが、無限再帰編集を避けるためにフラグを使用しています。
このカスタム コントロールを設計する方法について何か考えはありますか? これを行うより良い方法はありますか?この例外を回避するにはどうすればよいですか?
ありがとう!