应用itemscontrol时,逻辑滚动不再有效

时间:2012-03-18 16:01:58

标签: c# wpf wpf-controls

当应用itemsControl时,我发现逻辑滚动(canContentScroll="true")似乎不再起作用。

使用逻辑滚动我的意思是在点击例如移动scrollviewer的2个导航按钮时查看每个项目的项目。

itemControl的内容如下:

  <Grid Height="70" Width="900">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition x:Name="LeftScrollRow2" Width="Auto"/>
                    <ColumnDefinition x:Name="HorizontalContentRow2" Width="*"/>
                    <ColumnDefinition x:Name="RightScrollRow2" Width="Auto"/>
                </Grid.ColumnDefinitions>
                <RepeatButton Content="left" x:Name="btnLeft" Grid.Column="0" Style="{DynamicResource RepeatButtonStyleLeft}" Click="btnLeft_Click"></RepeatButton>
                <ScrollViewer Grid.Column="1" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="True" Margin="0" Height="73" >
                    <ListBox  x:Name="list1" ItemsSource="{Binding Reg, ElementName=Window}" Background="{x:Null}" BorderBrush="{x:Null}">
                        <ListBox.ItemsPanel>
                            <ItemsPanelTemplate>
                                <StackPanel Orientation="Horizontal"></StackPanel>
                            </ItemsPanelTemplate>
                        </ListBox.ItemsPanel>
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <Button x:Name="TestButton" HorizontalAlignment="Center" Height="71" Width="151" 
                            Margin="5,0,10,0" Style="{DynamicResource ButtonStyleTest}" 
                            Click="TestButton_Click"/>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                    </ListBox>
                </ScrollViewer>
                <RepeatButton Content="right" x:Name="btnRight" Grid.Column="2" Style="{DynamicResource RepeatButtonStyleRight}" Click="btnRight_Click"></RepeatButton>
            </Grid>

当我浏览堆叠面板(按钮)中正在加载的项目时,只会继续滚动,并且内容会慢慢显示。

一个可能的解决方案是使用 HorizontalOffSet ,但这涉及给出一个确切的距离,我认为这根本不是一个好的解决方案。

提前致谢, Jackz

1 个答案:

答案 0 :(得分:0)

我会以不同的方式解决这个问题。

我会在样式中添加滚动条。阅读此内容并查看“滚动条”部分中的注释。 http://www.wpfsharp.com/2012/03/18/itemscontrol-vs-listbox-vs-listview-in-wpf/