У меня есть окно со следующим содержимым:
<Grid>
<ScrollViewer x:Name="Outer" CanContentScroll="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<ScrollViewer x:Name="Inner1" CanContentScroll="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Auto">
<DataGrid HorizontalAlignment="Stretch" MinWidth="700" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Column A" />
<DataGridCheckBoxColumn Header="Column B" />
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
<TextBox Width="500" Grid.Row="1" HorizontalAlignment="Left"/>
<ScrollViewer x:Name="Inner2" Grid.Row="1" CanContentScroll="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Auto">
<DataGrid HorizontalAlignment="Stretch" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Column С" />
<DataGridCheckBoxColumn Header="Column В" />
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</Grid>
</ScrollViewer>
</Grid>
Моя цель - сделать следующее: если ширина содержимого окна меньше ширины окна - должна появиться внешняя горизонтальная полоса прокрутки. Если я увеличу ширину столбца сетки данных - должна появиться только горизонтальная полоса прокрутки для этой сетки данных.
Что меня блокирует:
Когда я увеличиваю ширину столбца сетки данных, он изменяет размер своей сетки данных и появляется горизонтальная полоса прокрутки «Outer» вместо «Inner1», которая остается неактивной.
На самом деле в моем приложении есть окно с управлением кадром. Фрейм загружает страницу с пользовательским содержимым, а размер страницы может быть больше размера окна. Управление кадром обернуто ScrollViewer. Страница содержит несколько DataGrid, обернутых средствами просмотра прокрутки, чтобы отображать горизонтальную полосу прокрутки при изменении ширины столбца, даже если в сетке данных нет строк. Поэтому, когда я увеличиваю ширину столбца datagrid, он изменяет размер datagrid -> datagrid изменяет размер всей страницы -> scrollviewer, в котором появляется кадр обертки. Можно ли отключить изменение размера сетки данных при изменении ширины столбца?