WPF WrapPanel внутри WrapPanel без свободного места - PullRequest
2 голосов
/ 11 марта 2019

У меня следующая ситуация: на главной странице у меня есть ItemsControl, а для ItemsPanelTemplate установлено значение WrapPanel

<ItemsControl Grid.Row="1" ItemsSource="{Binding StepItems}" x:Name="ItemsControl" Visibility="{Binding ActualView, Converter={StaticResource ActualViewConverter}, ConverterParameter=TableView}" Width="{Binding TableWidth}" Margin="0,5,0,0">
<ItemsControl.ItemContainerStyle>
    <Style>
        <Setter Property="FrameworkElement.Margin" Value="0,5,10,5"/>
    </Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapPanel x:Name="itemsWrapPanel" Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top"></WrapPanel>
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>

Связанный список «StepITems» содержит несколько элементов управлениякоторый сам также представляет ItemsControl как WrapPanel

<ItemsControl ItemsSource="{Binding Rows, ElementName=Root}" x:Name="ItemsControl">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel x:Name="itemsWrapPanel" Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Center"></WrapPanel>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <hmiControl:ScrewPointControl Margin="0,0,10,0"/>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

. Проблема в том, что если в следующем списке недостаточно места внутри фактической строки, он начинается в новой строке вместо переноса.

Три элемента ItemsControls с пробелом между собой

Есть ли способ управлять тем, что второй ItemsControl запускается сразу после первого, а затем второй оборачивается, если места больше нет?

Привет, Кейпиготт

...