2013-02-19 11 views
0

Я разрабатываю средство просмотра кода с помощью виртуализованного элемента управления ListView для отображения строк кода.Элемент списка ListView

Теперь я хочу создать эффект выделения, когда пользователь нажимает на ссылку, которая переводит их в определенную строку. Я хочу, чтобы целевая линия была выделена.

Эффект будет либо «подчеркиванием», появляющимся (и исчезающим), либо полупрозрачным наложением (например, маркерной ручкой), появляющимся (и исчезающим). Сам фактический графический эффект неважен, это не проблема.

Каков наилучший подход для достижения этого? Я не совсем уверен, с чего начать.

Некоторых технических требований может быть, что мне нужно:

  • найти правильные события реагировать на - или использовать привязки данных
  • получить абсолютный прямоугольник виртуализированного целевого элемента (хотя, когда принес в поле зрения этот пункт должен быть доступен)
  • абсолютно позиционировать холст эффект на вершине, исчезать и исчезать

... В идеале некоторые изменения состояния в модели представления, часть XAML анимируется с помощью запущенной раскадровки, которая появляется (исчезает) над соответствующим ListViewItem, а затем снова оживает (исчезает). Конечно, перед тем, как затухать, элемент уже должен быть правильно расположен над соответствующим ListViewItem ...

ответ

1

Я работал над функцией поиска для Listview, где у каждого ListViewItem было несколько текстовых файлов. Когда пользователь вводит что-то в текстовое поле поиска, все совпадения в списке должны были подсвечиваться.

Я создал объекты Run на основе строки поиска (используется для поиска соответствия Regex), а затем установите Background в некоторый цвет. Кроме того, содержалась ссылка ListViewItem в теге объекта Run, которая помогла мне использовать вызов ScrollIntoView. Надеюсь, это поможет вам в вашем случае.

Смежные вопросы