如何使用后面的c#代码将列宽设置为WPF中文本/*/Auto的任一大小?

问题描述 投票:0回答:1

我想在后面的代码中创建数据网格,并将其添加到其他区域(例如,每个 tabitem 都有一个数据网格)。然而,每次我不断地让列宽的长度变得非常小,很难读取数据网格中的数据。我查看了我拥有的其他 Datagrid 表并复制了 XAML 中的相同步骤,但不起作用。甚至,我牺牲了使用背后的代码,只是在 XAML 中添加了数据网格,并使用了相同的设置,相同的结果。

我的 XAML 遵循用户控件:

<UserControl>
    <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
        <DockPanel Background="#A0A1A2" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" LastChildFill="False">
     ...........
      <TabControl>
      (tabitem will be generated through loop with adding datagrids into the tabitem in code behind)
      </TabControl>
     </DockPanel>
   </ScrollViewer>
</UserControl>

背后代码:

    dt_grid1 = new DataGrid();
    dt_grid2 = new DataGrid();

    InitializeComponent();

    // Setting up the Datagrids:
    Dispatcher.Invoke(() =>
    {
        // Datagrid1:
        dt_grid1.CanUserAddRows = false;
        dt_grid1.CanUserDeleteRows = false;
        dt_grid1.CanUserReorderColumns = false;
        dt_grid1.CanUserResizeColumns = false;
        dt_grid1.CanUserResizeRows = false;
        dt_grid1.CanUserSortColumns = false;
        dt_grid1.AutoGenerateColumns = false;
        dt_grid1.IsReadOnly = true;
        dt_grid1.Margin = new Thickness(5);
        dt_grid1.VerticalAlignment = VerticalAlignment.Stretch;
        dt_grid1.HorizontalAlignment = HorizontalAlignment.Stretch;
        dt_grid1.SelectionMode = DataGridSelectionMode.Extended;
        //dt_grid1.ColumnWidth = new DataGridLength(50, DataGridLengthUnitType.Star);

        // Datagrid2:
        dt_grid2.CanUserAddRows = false;
        dt_grid2.CanUserDeleteRows = false;
        dt_grid2.CanUserReorderColumns = false;
        dt_grid2.CanUserResizeColumns = false;
        dt_grid2.CanUserResizeRows = false;
        dt_grid2.CanUserSortColumns = false;
        dt_grid2.AutoGenerateColumns = false;
        dt_grid2.IsReadOnly = true;
        dt_grid2.Margin = new Thickness(5);
        dt_grid2.VerticalAlignment = VerticalAlignment.Stretch;
        dt_grid2.HorizontalAlignment = HorizontalAlignment.Stretch;
        dt_grid2.SelectionMode = DataGridSelectionMode.Extended;
        //dt_grid2.ColumnWidth = new DataGridLength(50, DataGridLengthUnitType.Star);
    });

我遇到的 Datagrid 问题是这样的:

c# wpf xaml datagrid
1个回答
0
投票

您可以设置datagrid本身(而不是Dockpanel)属性ColumnWidth =“*”,这将使所有列的大小相同

© www.soinside.com 2019 - 2024. All rights reserved.