2014-11-21 76 views
0

随着新版本的kinect不存在旧的kinectScrollviewer,所以我用了一个带图像列表视图的ScrollViewer。问题是当隐藏ScrollbarVisibility或水平滚动时不可滚动,如果我使用SelectionChanged它可以正常使用鼠标,但是如果我在第一次单击选择区域后使用手势不会消失,所以我不选择元素 I将只滚动水平(所以我已禁用垂直),但也与您的代码不滚动手势。此外,点击不起作用。 如果我使用方向=“垂直”这是滚动垂直(虽然在本例中水平滚动使用此设置),但如果我使用方向=“横向”它不工作:(WrapPanel水平方向不起作用

<k:KinectRegion x:Name="ChoiceExercise" Background="Black" > 
      <DockPanel> 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="Auto"/> 
         <RowDefinition Height="*"/> 
        </Grid.RowDefinitions> 
        <k:KinectUserViewer Grid.Row="0" Height="100"/> 
        <ContentControl Grid.Row="1" x:Name="navigationRegion"> 
         <Grid x:Name="kinectGrid"> 
          <ScrollViewer Grid.Row="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" k:KinectRegion.IsScrollInertiaEnabled="True"> 
           <ListView Grid.Row="0" x:Name="listViewExercise" SelectionChanged="listViewExercise_SelectionChanged" BorderThickness="0" Background="Black" > 
            <ListView.ItemsPanel> 
             <ItemsPanelTemplate> 
              <WrapPanel VerticalAlignment="Center" Orientation="Horizontal" /> 
             </ItemsPanelTemplate> 
            </ListView.ItemsPanel> 
           </ListView> 
          </ScrollViewer> 
         </Grid> 
        </ContentControl> 
       </Grid> 
      </DockPanel> 
     </k:KinectRegion> 

回答

0

ListView已经包含ScrollViewer作为默认模板的一部分,它的这种行为,你需要通过设置附加ScrollViewer.VerticalScrollBarVisibility属性来禁用Disabled

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <k:KinectUserViewer Grid.Row="0" Height="100"/> 
    <ContentControl Grid.Row="1" x:Name="navigationRegion"> 
     <Grid x:Name="kinectGrid"> 
     <ListView 
      Grid.Row="0" 
      ScrollViewer.VerticalScrollBarVisibility="Disabled" 
      x:Name="listViewExercise" 
      SelectionChanged="listViewExercise_SelectionChanged" 
      BorderThickness="0" 
      Background="Black" > 
      <ListView.ItemsPanel> 
       <ItemsPanelTemplate> 
        <WrapPanel VerticalAlignment="Center" Orientation="Horizontal" /> 
       </ItemsPanelTemplate> 
      </ListView.ItemsPanel> 
     </ListView> 
     </Grid> 
    </ContentControl> 
</Grid> 

而且WrapPanel与水平方向是为了堆放物品,直到水平项目无法适应然后移动到下一行。既然你想要水平滚动,我认为水平StackPanel会更适合你。

<ItemsPanelTemplate> 
    <StackPanel Orientation="Horizontal"/> 
</ItemsPanelTemplate> 
+0

完美的,现在水平滚动工作正常。如果我使用[标签:StackPanel]滚动是一个步骤,而不是流动。 用你的手点击是因为你认为它不能用作鼠标点击? – luca 2014-11-21 09:27:17

+2

如果你想滚动的物理单位尝试设置'ScrollViewer.CanContentScroll =“false”对'ListView'以及 – dkozl 2014-11-21 09:30:37

+0

谢谢现在滚动罚款也与ListView。现在我尝试解决点击问题 – luca 2014-11-21 10:08:28

相关问题