0

仮想化された ListView コントロールを使用してコード行を表示するコード ビューアーを設計しています。

ユーザーが特定の行に移動するリンクをクリックしたときに、ハイライト効果を作成したいと考えています。ターゲット行を強調表示したい。

効果は、「下線」の表示 (および非表示) または半透明のオーバーレイ (マーカー ペンのような) の表示 (および非表示) のいずれかです。実際のグラフィック効果自体は重要ではなく、それは問題ではありません。

これを達成するための最良のアプローチは何ですか?どこから始めればよいかよくわかりません。

技術的な要件として、次のことが必要になる場合があります。

  • 反応する適切なイベントを見つける - またはデータバインディングを使用する
  • 仮想化されたターゲット アイテムの絶対的な境界四角形を取得します (ただし、ビューに表示されたときにアイテムが使用可能である必要があります)。
  • キャンバス効果を上に絶対に配置し、フェードインとフェードアウトします

...理想的には、ビュー モデルのいくつかの状態が変化します。トリガーされたストーリーボードを介して XAML の一部がアニメーション化され、関連する ListViewItem の上に表示 (フェードイン) され、再びアニメーション化されます (フェードアウト)。もちろん、フェードインの前に、要素は関連する ListViewItem の上に正しく配置されている必要があります...

4

1 に答える 1

1

すべての ListViewItem にテキストボックスがほとんどない Listview の検索機能に取り組んできました。ユーザーが検索テキストボックスに何かを入力すると、リストビュー内のすべての一致が強調表示されるはずでした。

検索文字列に基づいて Run オブジェクトを作成し (正規表現を使用して一致を見つけました)、Background を特定の色に設定しました。また、Run オブジェクトのタグに ListViewItem の参照を保持していたので、ScrollIntoView 呼び出しを使用するのに役立ちました。これがあなたの場合に役立つことを願っています。

于 2013-02-20T06:55:33.853 に答える