9

私は を持っておりItemsControl、そこに表示しているアイテム ( views:DisplayGroupView) を、垂直方向ではなく水平方向に拡張してすべてのコンテンツを表示するように作成しました (使用可能な高さのみを使用)。

の をwithを使用するようにItemsPanel変更しましたItemsControlStackPanelOrientation="Horizontal"

レイアウトに関しては完璧ですが、何をしても横にスクロールできないので、すべてを見ることができます。

これは、次の XAML ですItemsControl

    <ItemsControl ItemsSource="{Binding DisplayGroups}" Grid.Row="1" Margin="120,20,120,20" VerticalContentAlignment="Stretch">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate >
                <StackPanel Orientation="Horizontal" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.HorizontalScrollBarVisibility="Visible"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>

        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <views:DisplayGroupView Margin="0,0,20,0" DataContext="{Binding}" VerticalAlignment="Stretch"></views:DisplayGroupView>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

これにより、すべてが正常にレイアウトされますが、スクロールしません。また、スクロールビューアーを含めるように ItemsControls テンプレートを変更しようとしましたが、これは物事を垂直に積み重ねるだけです:

            <ItemsControl.Template>
                <ControlTemplate>
                    <ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Stretch" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.VerticalScrollMode="Disabled">
                        <ItemsPresenter VerticalAlignment="Stretch"/>
                    </ScrollViewer>
                </ControlTemplate>
            </ItemsControl.Template>

スクロールしながら水平レイアウトを取得するにはどうすればよいですか?

4

1 に答える 1

8

から引き出してItemsControlそれ自体を埋め込むと、何らかの理由で回避策として機能することがよくあります。

<ScrollViewer VerticalScrollBarVisibilty="Disabled" HorizontalScrollBarVisibility="Auto">
  <ItemsControl/>
</ScrollViewer>
于 2013-08-09T20:24:31.277 に答える