我有下一个内容的窗口:
<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>
我的目标是下一步:如果窗口内容宽度小于窗口宽度 - 应该出现外部水平滚动条。如果我增加数据网格列宽 - 应该只出现此数据网格的水平滚动条。
是什么阻止了我:
当我增加 datagrid 列宽时 - 它会调整其 datagrid 的大小并且出现“ Outer ”水平滚动条,而不是保持非活动状态的“ Inner1 ”。
事实上,在我的应用程序中,我有带框架控制的窗口。框架加载具有自定义内容的页面,页面大小可能大于窗口大小。框架控件由 ScrollViewer 包装。页面包含一些用滚动查看器包裹的 DataGrids,以在更改列宽时显示水平滚动条,即使数据网格中没有行也是如此。因此,当我增加数据网格列宽时,它会调整数据网格的大小-> 数据网格调整整个页面的大小-> 出现包装框架的滚动查看器。更改列宽时是否可以禁用数据网格调整大小?