winrt xaml如何滚动stackpanel的内容?

winrt xaml如何滚动stackpanel的内容?,xaml,windows-store-apps,winrt-xaml,Xaml,Windows Store Apps,Winrt Xaml,我有一个滚动条,当我站在上面时,滚动条很好,但是如果我站在stackpanel(用滚动查看器包装)内的内容上,滚动条就不工作了,为什么 <ScrollViewer Grid.Column="0" VerticalScrollMode="Enabled" VerticalScrollBarVisibility="Auto"> <StackPanel Orientation="Vertical"> <TextBlock Text="Partici

我有一个滚动条,当我站在上面时,滚动条很好,但是如果我站在stackpanel(用滚动查看器包装)内的内容上,滚动条就不工作了,为什么

<ScrollViewer Grid.Column="0" VerticalScrollMode="Enabled" VerticalScrollBarVisibility="Auto">
    <StackPanel Orientation="Vertical">
        <TextBlock Text="Participants" />
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
            <TextBlock Text="{Binding Path=Users.Count}" />
            <TextBlock Text="/" />
            <TextBlock Text="{Binding MaxParticipants}" />
        </StackPanel>
        <ListView ItemsSource="{Binding Users}" Tapped="User_Tapped">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ListViewItem IsHitTestVisible="False">
                        <StackPanel>
                            <facebookControls:ProfilePicture ProfileId="{Binding FacebookId}" />
                            <TextBlock Text="{Binding UserName}" />
                        </StackPanel>
                    </ListViewItem>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackPanel>
</ScrollViewer>

问题在于ListView有自己的滚动查看器,因此当您滚动ListView时,ListView滚动查看器将获得滚动事件。
如果您不需要选择项目,那么最简单的方法就是将ListView替换为ItemsControl。
如果需要选择项,则可以从ListView的样式中删除ScrollViewer。以下是不带scrollviewer的ListView样式:

<Style x:Key="ListViewStyle1" TargetType="ListView">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListView">
                <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
                    <ItemsPresenter HeaderTemplate="{TemplateBinding HeaderTemplate}" Header="{TemplateBinding Header}" HeaderTransitions="{TemplateBinding HeaderTransitions}" Padding="{TemplateBinding Padding}"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

此外,如果使用ListView,则在点击用户时不应使用
Tapped=“User\u Tapped”
获取事件,而应设置
IsItemClickEnabled=“True”
,并使用ItemClicked事件