更改GridViewColumn宽度时,将网格列锁定到位

时间:2011-02-28 23:04:46

标签: wpf xaml grid datatemplate

我有一个Gridview列的DataTemplate,它有2个项目,一个图像和一个文本块,我想"锁定"列左侧的图像,即使用户扩展了列的宽度,我希望图像保持不变。

任何想法?

1 个答案:

答案 0 :(得分:1)

尝试将HorizontalContentAlignment设置为Stretch for GridViewColumnHeader

<ListView ...>
    <ListView.Resources>
        <Style TargetType="{x:Type GridViewColumnHeader}">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>
    </ListView.Resources>
    <!--...-->
</ListView>

如果您希望TextBlock居中,那么您的HeaderTemplate可能看起来像这样。 否则只需删除HorizontalAlignment

即可
<DataTemplate>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Image Grid.Column="0" .../>
        <TextBlock Grid.Column="1" HorizontalAlignment="Center" .../>
    </Grid>
</DataTemplate>