LongListSelector中的滚动错误

时间:2013-01-04 19:43:00

标签: c# silverlight windows-phone-7 longlistselector

我有一个LLS,显示2组朋友(在线和离线)。我的问题:当我开始滚动LLS时 - 它有2个变种:1)LLS滚动好,2)它不滚动。当它不滚动时 - 我开始在不同的地方垂直滚动屏幕,并且在屏幕的某个位置我找到LLS开始滚动的位置。但!在第二次 - 在这个地方LLS不滚动,我再次尝试在屏幕上找到LLS滚动的地方。看起来LLS的scrollviewer随机改变位置和大小。这是我的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>

我没有更改控件名称,我从here获取了它们。

2 个答案:

答案 0 :(得分:0)

问题在于滚动仅适用于控件。因此,如果我将鼠标放在图像或文本块上 - 它滚动得很好(我的LLS有空位而没有任何控件),当我尝试在空白处滚动时 - 它不会滚动。

答案 1 :(得分:0)

在DataTemplate的StackPanel上放置透明背景。命中测试系统必须有像素才能使用,即使它们是透明的。不过,不要随意添加背景,否则你的帧速率会下降。