Странное поведение ширины с DataGridColumn в WPF - PullRequest
1 голос
/ 04 марта 2012

если я установлю сетку данных с 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?

1 Ответ

3 голосов
/ 04 марта 2012

так работает сетка данных по умолчанию: ширина, заданная для столбцов, является только исходной шириной.А затем, когда вы уменьшаете размер сетки данных, она изменяет размеры ВСЕХ столбцов, независимо от их исходной ширины.

если вы хотите, чтобы ваши столбцы сохраняли свою ширину независимо от того, что (и вместо этого показывает полосу прокрутки),следует вместо этого использовать MinWidth

...