WPF 将 dataGrid witdth 设置为屏幕或父级宽度的 30%

WPF set dataGrid witdth to 30% of screen or parent's width

接下来我想做的是,我有一个带有 3 个数据网格的主窗口,它们包含在 StackPanel 中,我想在这里做的是,我想将数据网格宽度调整为:例如屏幕的 30%,因为有 3 个数据网格,它将占屏幕宽度的 90% space,这没关系,因为我将仅使用 MainWindow 和那个数据网格来呈现一些数据。重要的是要注意我将在不同大小的 monitors/displays.

上使用它

这是我正在谈论的图像:

如您所见,因为我在 dataGrids 中没有任何数据,所以它们非常狭窄。我怎样才能将它们的宽度保持在该堆栈面板的 30% 或其他任何东西上,无论是否有数据,我都希望 dataGrids 保持屏幕宽度的 30%。

MinWidth=""

或类似的东西?

谢谢大家,干杯

P.S 我在小屏幕上测试过,当我用数据填充 dataGrids 时,我根本看不到第三个 dataGrid :(

使用 Grid 列。 width="n*" 表示按比例设置宽度:3 + 3 + 3 + 1 == 10,所以在这种情况下,“3*”的列宽将是十分之三的总宽度。当您拉伸父级时,它们会适当调整大小。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="3*" />
        <ColumnDefinition Width="3*" />
        <ColumnDefinition Width="3*" />
        <ColumnDefinition Width="1*" />
    </Grid.ColumnDefinitions>

    <DataGrid Grid.Column="0">
    </DataGrid>

    <DataGrid Grid.Column="1">
    </DataGrid>

    <DataGrid Grid.Column="2">
    </DataGrid>

    <!-- You don't need a control to fill the remaining 1* column. -->
</Grid>