如果我设置一个包含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>
如果我在调整窗口大小时将一列更改为宽度*,使其变小,所有这些都会改变宽度。
<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中的错误?
答案 0 :(得分:3)
这是数据网格默认工作的方式:您在列上设置的宽度仅为原始宽度。然后,当您向下调整数据网格的大小时,它会调整所有列的大小,与其原始宽度无关。
如果你希望你的列无论如何保持宽度(例如,显示一个滚动条),你应该使用MinWidth代替/