C# 如何在运行时获取自动生成的wpf数据网格的宽度?

C# 如何在运行时获取自动生成的wpf数据网格的宽度?,c#,wpf,c#-4.0,wpfdatagrid,wpftoolkit,C#,Wpf,C# 4.0,Wpfdatagrid,Wpftoolkit,在我的wpf应用程序中,我有一个自动生成的datagrid。显示的列数不是固定的,可能从5列到30列不等。如果屏幕上没有容纳所有列,我必须在网格上显示水平滚动条。要显示水平滚动条,我必须在运行时指定datagrid的宽度。那么,如何在运行时获得所需的datagrid宽度呢?使用Scrollviewer查看datagrid,并将您的datagrid放入网格中 <Grid> <Grid.CoulmnDefinitions> <ColumnDefinit

在我的wpf应用程序中,我有一个自动生成的datagrid。显示的列数不是固定的,可能从5列到30列不等。如果屏幕上没有容纳所有列,我必须在网格上显示水平滚动条。要显示水平滚动条,我必须在运行时指定datagrid的宽度。那么,如何在运行时获得所需的datagrid宽度呢?

使用Scrollviewer查看datagrid,并将您的datagrid放入网格中

<Grid>
   <Grid.CoulmnDefinitions>
      <ColumnDefinition Width="Auto" />
      <ColumnDefinition Width="*" />
   </Grid.CoulmnDefinitions>
   <DataGrid Grid.Column="0" ScrollViewer.CanContentScroll="True" 
        ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto">

    <!-- Some code here -->

    </DataGrid>
</Grid>

尝试将ScrollViewer.HorizontalScrollBarVisibility属性设置为自动,或在DataGrid上可见。。。它们应该在需要时自动出现。实际上,我认为DataGrid有它自己的HorizontalScrollBarVisibility属性。。。尝试设置。谢谢Mayur的回复。事实上,我之前已经试过了,它没有显示滚动条。我们必须设置datagrid的宽度以显示水平滚动条。因此,我正在寻找一种解决方案来获取/计算所需的数据网格宽度,并在运行时分配它。在运行时分配宽度不是这样做的合适方法。由于您的数据网格正在重新调整大小,请尝试将您的数据网格放入宽度为自动的网格中。我已经更新了我的代码,谢谢你。但水平滚动条仍然不可见。已在运行时检查datagrid width,其显示为NaN