2013-07-16 3 views
3

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

<ListView.Background> 
    <ImageBrush ImageSource="..\Images\bookshelf.png" AlignmentX="Left" AlignmentY="Top" TileMode="Tile" Stretch="None" ViewportUnits="Absolute" Viewport="0,0,319,203" /> 
</ListView.Background> 

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

Как добавить изображение, которое содержит плитки и свитки с помощью ListView?

+1

Вы пытались установить фон каждого ряда LV на одну полку? –

+0

Что следует учитывать при использовании ListView с его виртуализацией, ActualHeight ScrollViewer на самом деле не является общей высотой. Он использует комбинацию «ExtentHeight», «ScrollableHeight», «ViewportHeight», «VerticalOffset» и, возможно, что-то еще, чтобы вычислить фактические требования к полосе прокрутки и размеры прокрутки. Даже со всем этим не гарантируется, что это правильно, если сказать, что какой-то элемент не в Видовом экране имеет гораздо большую «высоту», чем другие элементы, так как вы можете увидеть размер большого пальца полосы прокрутки, когда этот нерегулярный элемент входит в область просмотра. – Viv

+0

^^ .. продолж. С возможностью того, что мы не можем вычислить фактическую высоту «ExtentHeight» с высотой виртуализации и нечеткой высоты, предложение @GarryVass было бы лучшим вариантом для вас здесь. Нарисуйте изображение книжной полки на 3 части (сверху, полке, снизу) и либо используйте селектор DataTemplate для их применения соответственно, либо оберните ListView верхним и нижним изображениями за его пределами и примените изображение полки к каждому элементу. – Viv

ответ

0

Вместо того, чтобы устанавливать фон ListView, попробуйте создать еще один ScrollViewer, который находится за ListView и содержит изображение. Когда прокручивается ListView, обновите положение прокрутки ScrollViewer. Это также позволит вам добавить прокрутку параллакса, если вы этого захотите.

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