1

Textblock を (問題があれば ListBox で) 動的にバインドし、テキストに URL が含まれている場合はハイパーリンクを作成しています。私はWPF で表示される手法を使用しています - ハイパーリンクをクリック可能にする

うまく機能しますが、奇妙なことに、バインディングを新しいテキストで更新するたびに、実際にテキストブロックをクリックするまで、新しいハイパーリンクをクリックできません。リンクを示す「ハンドカーソル」でさえ、テキストブロックをクリックするまで機能しません。

アプリはフォーカスを失うことはなく、引き続きキー ストロークを受け取ります。フォーカスを設定してキークリックを送信しようとしましたが、うまくいきませんでした。何か案は?

4

1 に答える 1

0

まあ、それはハックですが、うまくいくように見えたのはそれだけでした。

アプリケーションに KeyUp (下矢印) を送信しましたが、すべて問題ありません。

[DllImport("user32.dll")]
public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);

そして最後に textchanged ハンドラーで。

textBlock.Inlines.Clear();
textBlock.Inlines.AddRange(inlines);
keybd_event(0x28, 0, 0x0002, 0);

アプリケーションが入力イベントを確認する必要があるため、テキストブロックが新しい wpf コントロールであったことを認識することができます。

于 2013-06-11T17:09:09.007 に答える