Как создать UniformGrid в XAML с автопрокрутки после превышения ограничения строк по элементам

Я хотел бы создать UniformGrid который будет содержать WindowsFormsHosts (внутри них WinForms). 4 хоста в каждой строке (4 столбца), и после превышения их видимой емкости новые элементы будут добавлены внизу, и пользователь сможет прокручивать UniformGrid, Я даже не знаю, с чего начать, кроме определения UniFormGrid и его номера столбца.

 <UniformGrid x:Name="Grid"  Columns="4">

    </UniformGrid>

Поведение, которое я хотел бы получить, аналогично поведению в проводнике Windows, если в представлении слишком много значков, которые можно прокрутить вниз.

я использовал UniformGrid потому что мне нужен был эквивалент GridLayout() на Яве. Я хочу, чтобы каждый добавленный элемент был одинакового размера. Я добавляю элементы из.cs.

1 ответ

Я просто расширю это из комментариев, в зависимости от того, какой размер ваш WinForm контроли, и в зависимости от желаемого поведения изменения размера, вы можете обойтись без простого обертывания WrapPanel в ScrollViewerНапример:

    <ScrollViewer>
        <WrapPanel>
            <Grid Width="100" Height="100" Background="Red"/>
            <Grid Width="100" Height="100" Background="Blue"/>
            <Grid Width="100" Height="100" Background="Yellow"/>
            <Grid Width="100" Height="100" Background="Red"/>
            <Grid Width="100" Height="100" Background="Blue"/>
            <Grid Width="100" Height="100" Background="Yellow"/>
            <Grid Width="100" Height="100" Background="Red"/>
            <Grid Width="100" Height="100" Background="Blue"/>
            <Grid Width="100" Height="100" Background="Yellow"/>
        </WrapPanel>
    </ScrollViewer>

Для большей гибкости этот ответ связан с проектом, который обеспечивает UniformWrapPanelи стоит посмотреть.

Другие вопросы по тегам