winrt xaml如何滚动stackpanel的内容?
我有一个滚动条,当我站在上面时,滚动条很好,但是如果我站在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
<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事件