WPF: ListBox с WrapPanel, без полос прокрутки, содержимое масштабируется с помощью ViewBox, показывая все содержимое

Используя WPF ListBox и WrapPanel, есть ли способ использовать ViewBox с внутренним масштабированием контента, но без обрезки контента или полос прокрутки? Я хочу уменьшить все внутренние элементы. Ширина / высота контейнера может масштабироваться, а количество элементов является динамическим.

Я собрал простой пример WPF (без каких-либо решений). Открыт для предложений.

Пример кода:

<Window x:Class="WpfListBoxWrapPanel.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Title="MainWindow"
    Height="230.572"
    Width="426.972">
<Grid>
    <ListBox ItemsSource="{Binding SomeCollection, FallbackValue=123456123456123456123456123456123456}"
             ScrollViewer.HorizontalScrollBarVisibility="Disabled"
             ScrollViewer.VerticalScrollBarVisibility="Disabled">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid Width="50"
                      Height="50"
                      Margin="3">
                    <Rectangle Fill="LightCoral"></Rectangle>
                    <TextBlock Text="{Binding}"
                               Margin="4"></TextBlock>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel />
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
    </ListBox>
</Grid>

Предварительный просмотр приведенного выше кода

Спасибо!

0 ответов

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