1

如何将 DataGrid 标头的 XAML 宽度设置为*?此代码不起作用:

<DataGrid>
    <DataGrid.Resources>
        <Style x:Key="CbClmn" TargetType="DataGridColumnHeader">
            <Setter Property="Width" Value="30" />
        </Style>
        <Style x:Key="TxtClmn" TargetType="DataGridColumnHeader">
            <Setter Property="Width" Value="*" />
        </Style>
    </DataGrid.Resources>
    <DataGrid.Columns>
        <DataGridCheckBoxColumn HeaderStyle="{StaticResource CbClmn}" />
        <DataGridTextColumn Header="Title" HeaderStyle="{StaticResource TxtClmn}" />
        <DataGridCheckBoxColumn Header="Selected" HeaderStyle="{StaticResource CbClmn}" />
    </DataGrid.Columns>
</DataGrid>

样式TxtClmn生成异常'*' string cannot be converted to Length

4

1 回答 1

1

在对象浏览器中查看:

//DataGridColumn
public System.Windows.Controls.DataGridLength Width { set; get; }

//DataGridColumnHeader
public double Width { set; get; }

这就是为什么你不能那样做。它是双重类型。

于 2012-08-14T15:14:11.327 回答