【问题标题】:How to customize DataGrid header?如何自定义 DataGrid 标头?
【发布时间】:2012-05-04 14:00:02
【问题描述】:

如何自定义 DataGrid Header? 这张照片显示了我想做的事情......

我尝试了这个,但它不起作用......

<DataGridTemplateColumn.Header>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
        </Grid.RowDefinitions>
        <TextBlock Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Text="Název modelu"></TextBlock>
        <TextBlock Grid.Column="0" Grid.Row="1" Text="Cena bez DPH"></TextBlock>
        <TextBlock Grid.Column="1" Grid.Row="1" Text="Cena s DPH"></TextBlock>
    </Grid>
</DataGridTemplateColumn.Header>

你能帮我吗,我该怎么做?

【问题讨论】:

    标签: c# .net wpf templates datagrid


    【解决方案1】:

    尝试在您的TextBlock 上将HorizontalAlignment 设置为Center

    <TextBlock HorizontalAlignment="Center" 
               Grid.Column="1" Grid.Row="1" Text="Cena s DPH"></TextBlock>
    

    您可以从这里开始阅读更多关于WPF Layout system的信息

    您还需要将HorizontalContentAlignment 设置为DataGridColumnHeader

    将此添加到DataGridTemplateColumn

    <DataGridTemplateColumn.HeaderStyle>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </DataGridTemplateColumn.HeaderStyle>
    

    【讨论】:

    • @SebastianBusek 我已经在 DataGrid 之外进行了测试...以使其正常工作,请参阅我更新的答案。现在标题将占据所有空间。您现在可以使用 ColumnDefinition.Width 和 Allignments 来获得结果。
    • 工作!谢谢你。 :) 顺便说一句:你从哪里得到这些知识?
    • 有一个名为Snoop的应用程序可以可视化任何WPF应用程序的可视化树。我用它来找出导致标题缩小的原因是DataGridColumnHeader,幸运的是,有一种方法可以用HeaderStyle配置它。
    【解决方案2】:

    在 ColumnDefinitions 上尝试 Width="*"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      相关资源
      最近更新 更多