1

如果我设置一个具有 3 个固定宽度列的数据网格,一切都按预期工作(3 列测量 100):

<Window x:Class="DataGridTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<DataGrid HorizontalScrollBarVisibility="Visible" >
    <DataGrid.Columns>
        <DataGridTextColumn Width="100" Header="A" />
        <DataGridTextColumn Width="100" Header="B" />
        <DataGridTextColumn Width="100" Header="C" />
    </DataGrid.Columns>
</DataGrid>
</Window>

如果我在调整窗口大小时将一列更改为 Width * 使其变小,所有这些都会更改它们的宽度。

<Window x:Class="DataGridTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<DataGrid HorizontalScrollBarVisibility="Visible" >
    <DataGrid.Columns>
        <DataGridTextColumn Width="*" Header="A" />
        <DataGridTextColumn Width="100" Header="B" />
        <DataGridTextColumn Width="100" Header="C" />
    </DataGrid.Columns>
</DataGrid>
</Window>

这是预期的行为还是 WPF 中的错误?

4

1 回答 1

4

这就是数据网格默认的工作方式:您在列上设置的宽度只是原始宽度。然后,当您缩小数据网格的大小时,它会调整所有列的大小,而与它们的原始宽度无关。

如果您希望您的列无论如何都保持它们的宽度(并显示一个滚动条,例如),您应该使用 MinWidth 来代替/以及

于 2012-03-03T22:04:11.773 回答