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>

1つの列を幅*に変更すると、ウィンドウのサイズを変更してウィンドウを小さくすると、すべての列の幅が変更されます。

<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 に答える