在网格控件中调整 WPF 数据网格
本文关键字:网格 数据 数据网 WPF 控件 调整 | 更新日期: 2023-09-27 18:31:50
我有一个 DataGrid 控件在我的一个 WPF 窗口中的网格控件内。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<SomeControl Grid.Row="0" />
<DataGrid Grid.Row="1" VerticalScrollBarVisibility="Visible" VerticalAlignment="Stretch"/>
</Grid>
问题是,当我向 DataGrid 添加行时,它会流出包含窗口,并且其滚动条保持非活动状态。如何解决此问题并使数据网格的滚动条正常运行?
您可以
尝试如下
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="200" />
</Grid.RowDefinitions>
<DataGrid Grid.Row="1" HorizontalAlignment="Left" Margin="54,65,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="382" VerticalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="ID"/>
<DataGridTextColumn Header="ViewCount" />
<DataGridTextColumn Header="Title" />
</DataGrid.Columns>
</DataGrid>
</Grid>
您需要为 DataGrid 提供一些高度,因为您有 RowDefinition Height="*",因此垂直 Scrolbar 未处于活动状态,请尝试为 DataGrid 提供一些高度。希望对您有所帮助
我遇到了同样的问题;我的数据网格会流出我的网格。我正在使用一堆网格,因此该应用程序将缩放到屏幕大小。主网格的下行有三个数据网格。路径=实际高度仅在使用边距拟合数据网格时才有效;拿出来!现在,在我的应用程序中,所有内容都会随屏幕调整大小,除了我不希望它们这样做的数据输入 UI 元素。祝你好运!我希望这有所帮助。
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Margin="3" >
<DataGrid x:Name="DgDbNames" CanUserAddRows="false" Height="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}}" VerticalScrollBarVisibility="Auto" AlternatingRowBackground="LightGray" ItemsSource="{Binding Source=Dbs}" AutoGenerateColumns="False" CanUserResizeColumns="True" Margin="10" />
</Border>
<Border Grid.Column="1" Margin="3" >
<DataGrid x:Name="DgTableNames" CanUserAddRows="false" Height="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}}" VerticalScrollBarVisibility="Auto" AlternatingRowBackground="LightGray" ItemsSource="{Binding Source=Tables}" AutoGenerateColumns="False" CanUserResizeColumns="True" Margin="10" />
</Border>
<Border Grid.Column="2" Margin="3" >
<DataGrid x:Name="DgSprocNames" CanUserAddRows="false" Height="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}}" VerticalScrollBarVisibility="Auto" AlternatingRowBackground="LightGray" ItemsSource="{Binding Source=Sprocs}" AutoGenerateColumns="False" CanUserResizeColumns="True" Margin="10" />
</Border>
</Grid>