2015-02-23 2 views
0

При вертикальной прокрутке в представлении я могу вывести последнюю строку в поле зрения, но при отпускании перетаскивания последняя строка возвращается (частично) из вида. Я считаю, что неточность измерения может быть отнесена к сетке, которую я использую в качестве заголовка списка, но в настоящее время я не могу исправить это, чтобы они работали вместе правильно.WP8: Последняя строка ListBox не останется прокрученной в представлении

<Border> 
     <StackPanel> 
      <ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto"> 
       <StackPanel> 
        <Grid x:Name="_headers"/> 
        <ListBox x:Name="_dataGrid"/> 
       </StackPanel> 
      </ScrollViewer> 
     </StackPanel> 
    </Border> 

** Обновление Этот пример удаляет свиток, а также страдает от той же проблемы усеченной строки, как в примере выше. Строка сетки заголовка также не прокручивается по горизонтали со строками списка, что является еще более серьезной проблемой для моего решения.

<Border> 
     <StackPanel> 
      <Grid x:Name="_headers"/> 
      <ListBox x:Name="_dataGrid"/> 
     </StackPanel> 
    </Border> 

ответ

0

Это потому, что вы положили ScrollViewer внутри StackPanel. StackPanel не ограничивает размер управления, поэтому ScrollViewer может расти вечно и никогда не прокручивать должным образом. Его размер должен быть ограничен. Grid может сделать это отлично (если только высота строки установлена ​​на *, а не Auto).

Кроме того, на мой взгляд, вы не должны ставить ListBox внутри ScrollViewer, потому что ListBox уже имеет свой собственный прокрутки.

0

Никогда не используйте ListBox внутри ScrollViewer, вы столкнетесь с конфликтами прокрутки.

Насколько я могу судить, вам нужно добавить заголовок в свой список. LongListSeelctor может быть лучшим вариантом, так как он получил Header собственность (также Footer):

См: http://www.geekchamp.com/articles/the-new-longlistselector-control-in-windows-phone-8-sdk-in-depth