Плохая прокрутка в LongListSelector

У меня есть LLS, который показывает 2 группы друзей (онлайн и офлайн). Моя проблема: когда я начинаю прокручивать LLS - у него есть 2 варианта: 1) LLS прокручивается хорошо, 2) он не прокручивается. Когда он не прокручивается - я начинаю вертикально прокручивать экран в разных местах, и в каком-то месте экрана я нахожу позицию, где начинает прокручиваться LLS. Но! Во второй раз - в этом месте LLS не прокручивается, и я снова пытаюсь найти место на экране, где LLS прокручивается. Похоже, что просмотрщик прокрутки LLS случайным образом меняет положение и размер. Вот мой ЛЛС:

        <controls:PanoramaItem Header="1">
            <Grid Height="500" >
                <toolkit:LongListSelector Name="AllFriendsList" Height="500" Width="420" 
                ItemTemplate="{StaticResource citiesItemTemplate}"
                ListHeaderTemplate="{StaticResource citiesListHeader}" 
                ListFooterTemplate="{StaticResource citiesListFooter}"
                GroupHeaderTemplate="{StaticResource groupHeaderTemplate}"
                GroupItemTemplate="{StaticResource groupItemTemplate}" >
                    <toolkit:LongListSelector.GroupItemsPanel>
                        <ItemsPanelTemplate>
                            <toolkit:WrapPanel/>
                        </ItemsPanelTemplate>
                    </toolkit:LongListSelector.GroupItemsPanel>

                </toolkit:LongListSelector>
            </Grid>
        </controls:PanoramaItem>

и стили:

  <DataTemplate x:Key="citiesListHeader">
        <Border Background="Purple">
            <TextBlock Text="Cities Header" />
        </Border>
    </DataTemplate>
    <DataTemplate x:Key="citiesListFooter">
        <Border Background="Green">
            <TextBlock Text="Cities Footer" />
        </Border>
    </DataTemplate>

    <!-- The template for city items -->
    <DataTemplate x:Key="citiesItemTemplate">
        <StackPanel Grid.Column="1"  VerticalAlignment="Top">
            <Line Style="{StaticResource Line1}" ></Line>
            <Line Style="{StaticResource Line2}" ></Line>
            <TextBlock Margin="75,15,40,0" FontSize="30" Name="Name" Text="{Binding Name}" Tap="GetUserInfo" />
            <Image HorizontalAlignment="Left" Width="75" Name="Photo" >
                <Image.Source>
                    <BitmapImage UriSource="{Binding Image}" CreateOptions="BackgroundCreation" />
                </Image.Source>
            </Image>
        </StackPanel>
    </DataTemplate>


    <!-- The group header template, for groups in the main list -->
    <DataTemplate x:Key="groupHeaderTemplate">
        <Border Background="YellowGreen" Margin="6">
            <TextBlock Text="{Binding Title}" FontSize="40" Foreground="Black"/>
        </Border>
    </DataTemplate>

    <DataTemplate x:Key="groupItemTemplate" >
        <Border Background="YellowGreen" Width="99" Height="99" Margin="6">
            <TextBlock Text="{Binding Title}" FontSize="40" Foreground="Black"/>
        </Border>
    </DataTemplate>

Я не менял названия элементов управления, я взял их из здесь .


person user1947702    schedule 04.01.2013    source источник


Ответы (2)


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

person user1947702    schedule 05.01.2013

Поместите прозрачный фон в StackPanel в своем DataTemplate. Система проверки попаданий должна иметь пиксели для работы, даже если они прозрачны. Однако не сходите с ума, добавляя фон повсюду, иначе частота кадров упадет.

person user2073092    schedule 14.02.2013