Fitting WPF DataGrid in a Grid control
我的WPF窗口之一在Grid控件内有一个DataGrid控件。
1 2 3 4 5 6 7 8 | <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <SomeControl Grid.Row="0" /> <DataGrid Grid.Row="1" VerticalScrollBarVisibility="Visible" VerticalAlignment="Stretch"/> </Grid> |
问题是,当我向DataGrid添加行时,它会从包含窗口中流出,并且其滚动条保持不活动状态。 如何解决此问题并使DataGrid的滚动条正确运行?
您可以尝试如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <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 =" *",因此垂直滚动条未处于活动状态,请尝试为DataGrid提供一些高度。
希望对您有帮助
我遇到了同样的问题;我的数据网格将流出网格。 我正在使用一堆网格,因此该应用程序将缩放到屏幕尺寸。 主网格的下一行具有三个数据网格。
Path = ActualHeight仅在您为数据网格添加边距时才有效; 把它拿出来! 现在,使用我的应用程序,除了我不希望它们输入的数据输入UI元素之外,所有内容都会在屏幕上调整大小。 祝好运! 我希望这有帮助。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <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> |