Итак, у меня есть сетка из 2 столбцов. Каждый столбец содержит Expander, каждый из которых содержит элемент управления, использующий панель виртуализированных стеков.
Каждый элемент одинаков, однако длина текста и т. Д. Является переменной. У меня есть проблема, когда элемент, находящийся в элементе управления, вне поля зрения, хочет быть шире, чем над ним. Перед прокруткой вниз кажется, что ширина всех элементов совпадает с предполагаемой шириной этого более широкого элемента, но панель стека / расширитель не расширяются, чтобы вместиться правильно, пока я не прокручиваю нарушающий элемент почти в поле зрения.
У меня есть изображение, чтобы показать это. Все столбцы слева правильно отображаются, но там нет элементов, которые хотят быть шире, чем те, что находятся вверху.
Столбец слева содержит элементы, расположенные ниже, которые хотят быть шире, поэтому границы элементов расширяются, но расширитель не вмещается, пока я не прокручиваю.
(Скрытая конфиденциальная информация)
Я пытался использовать группы с общим размером, но безрезультатно (принудительно переносить текст на более широких элементах не проблема)
Вот примерная структура XAML (одинаковая для каждого столбца)
<Grid Grid.Row="2" HorizontalAlignment="Right">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Expander ExpandDirection="Left" Grid.Column="0" Margin="0,-2">
<Expander.Header>
<TextBlock Text="DONE">
<TextBlock.LayoutTransform>
<RotateTransform Angle="90"/>
</TextBlock.LayoutTransform>
</TextBlock>
</Expander.Header>
<Border BorderThickness="4,4,4,4" BorderBrush="Gray" CornerRadius="2">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Text="DONE" Margin="5" HorizontalAlignment="Center" Grid.Row="0" FontWeight="Bold" FontSize="18" />
<Border Width="Auto" Background="#ABABAB" Margin="15,0" Height="2" CornerRadius="5" Grid.Row="1">
<Border.Effect>
<DropShadowEffect/>
</Border.Effect>
</Border>
<ItemsControl ItemsSource="{Binding DoneCollection}" Margin="5" Style="{StaticResource VirtualizingIC}" Grid.Row="2" VirtualizingStackPanel.IsVirtualizing="True" ScrollViewer.CanContentScroll="True">
<ItemsControl.ItemTemplate>
<DataTemplate>
.....
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Border>
</Expander>
</Grid>