0

我的一个 WPF 窗口中的 Grid 控件中有一个 DataGrid 控件。

<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 的滚动条正常工作?

4

2 回答 2

2

您可以尝试如下

  <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 提供一些高度。希望对你有帮助

于 2013-09-19T09:49:01.427 回答
0

我有同样的问题;我的数据网格会流出我的网格。我有一堆我正在使用的网格,所以应用程序将缩放到屏幕大小。主网格的下排有三个数据网格。Path=ActualHeight 仅在您使用边距拟合数据网格时才有效;把它拿出来!现在有了我的应用程序,一切都随着屏幕调整大小,除了我不希望它们的数据输入 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>
于 2017-10-18T18:31:49.097 回答