【问题标题】:ItemsControl missing vertical scrollbarItemsControl 缺少垂直滚动条
【发布时间】:2013-08-23 08:05:15
【问题描述】:

我有下面的ItemsControl,它完美地包裹了物品,但它没有垂直滚动条来查看包裹的物品。如何让滚动条显示?

    <ItemsControl x:Name="tStack" Grid.Column="0" Grid.Row="1"
                  ItemsSource="{Binding Shows.View}"
                  HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                  BorderThickness="0.5">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Orientation="Horizontal" HorizontalAlignment="Left"
                           VerticalAlignment="Top"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Viewbox HorizontalAlignment="Left"  Height="250">
                    <Controls1:MyShowsUserControl Padding="10"/>
                </Viewbox>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

【问题讨论】:

    标签: wpf xaml scroll itemscontrol


    【解决方案1】:

    ItemsControl 默认情况下不会将ItemsPresenter 包装在ScrollViewer 中,因此您必须像这样手动进行:

    <ScrollViewer Grid.Column="0" Grid.Row="1">
       <ItemsControl x:Name="tStack" ... >
          <!-- .... -->
       </ItemsControl>
    </ScrollViewer>
    

    【讨论】:

    • 很奇怪...我之前试了 20 次还是不行,现在可以了...谢谢!
    • 我发现了问题:如果我为滚动查看器的水平滚动条可见性输入一个值,那么它就不能正常工作
    • 如果这不起作用,请添加滚动查看器父元素的高度。 ...
    【解决方案2】:

    ItemsControl 包装在ScrollViewer 控件中。

    <ScrollViewer VerticalScrollBarVisibility="Auto">
      <ItemsControl ...
    </ScrollViewer>
    

    请记住将Grid.Column="0" Grid.Row="1" 属性放在 ScrollViewer 中,而不是放在您的 ItemControl 中。

    【讨论】:

      【解决方案3】:

      使用 ScrollViewer 并将属性“VerticalScrollBarVisibility”设置为 true。

      这里是你的 ItemsControl

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多