WPF UniformGrid ItemsPanel ведут себя по-разному в ListBox и ItemsControl - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь использоватьiformGrid для моего списка предметов, как показано ниже. Если я использую ItemsControl, то ячейки заполняют доступные пробелы и полоса прокрутки не отображается, но если я использую ListBox, элементы остаются в своем первоначальном размере, поэтому полосы прокрутки появляются в списке. Мне нужно использовать ListBox для выбора элемента, но мне также нужно поведение, как в ItemsControl. Не могу придумать, как это сделать ...

<ListBox Grid.Row="1" Name="tileItems" ItemsSource="{Binding Tiles}" ItemTemplateSelector="{StaticResource myTileSelector}"
                 HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid x:Name="ug" Columns="3" Rows="3" IsItemsHost="True"></UniformGrid>
            </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
            <ListBox.ItemContainerStyle>
                <Style TargetType="{x:Type ListBoxItem}">
                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                </Style>
            </ListBox.ItemContainerStyle>
        </ListBox>

 <ItemsControl Grid.Row="1" Name="tileItems" ItemsSource="{Binding Tiles}" ItemTemplateSelector="{StaticResource myTileSelector}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid x:Name="ug" Columns="3" Rows="3" IsItemsHost="True"></UniformGrid>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>
...