Пожалуйста, давайте сосредоточимся на горизонтальном размере (ширине).
У меня есть горизонтальная StackPanel, которая автоматически изменяет размеры, чтобы занимать все пространство (оно «расширяется»).В нем у меня есть Grid (с 3 столбцами) и полоса прокрутки.Ширина полосы прокрутки должна быть фиксированной, но Grid должен расширяться.Как я могу заставить это сделать это?
Текущий код:
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<Grid Name="grid1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="2"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical" Grid.Column="0" HorizontalAlignment="Stretch">
<Label Content="Label" HorizontalAlignment="Center" Name="label1" VerticalAlignment="Bottom" />
</StackPanel>
<GridSplitter DragCompleted="OnDragCompleted" ShowsPreview="True" Name="gridsplitter1" Background="Red" Grid.Column="1" Grid.Row="0" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<StackPanel Orientation="Vertical" Grid.Column="2" HorizontalAlignment="Stretch">
<Label Content="Label" HorizontalAlignment="Center" Name="label2" VerticalAlignment="Bottom" />
</StackPanel>
</Grid>
<ScrollBar Name="scrollBarV" Orientation="Vertical" />
</StackPanel>
Независимо от того, что я делаю, ширина = авто, горизонтальное выравнивание = растяжение, каждый раз, когда каждый столбец сетки занимает толькотребуемое пространство (достаточное для отображения его содержимого), а не все доступное пространство.