0

我试图弄清楚如何在列缩小时强制列标题显示椭圆和/或滚动条。我知道文本块(列)内的数据可以缩小为椭圆,但我不知道如何使标题也这样做。我以以下方式定义我的数据网格(这是文本列的示例):

<DataGrid  Height="150" HorizontalAlignment="Stretch" VerticalScrollBarVisibility="Auto">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Dataset Description" Width="370">
                <DataGridTextColumn.CellStyle>
                    <Style TargetType="{x:Type DataGridCell}">
                        <Setter Property="ToolTip" Value="Name of database"/>                           
                    </Style>
                </DataGridTextColumn.CellStyle>
          </DataGridTextColumn>

在此示例中,当用户缩小“数据集描述”列时,我希望看到带有滚动条的“数据集 ...”或“数据集”之类的内容。

我尝试在 DataGridTextColumn 内添加类似的内容,但它不会产生任何结果/响应:

<DataGridTextColumn.HeaderStyle>
      <Style TargetType="{x:Type DataGridColumnHeader}">
          <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Visible"/>
      </Style>
 </DataGridTextColumn.HeaderStyle>

我想我可以实现一个监听器来查看列何时调整大小并重新设置标题值,但我显然想避免这种情况。欢迎任何想法!

4

1 回答 1

0

您可以执行以下操作,实现 DataGrid.ColumnHeaderStyle。

<DataGrid Height="150" HorizontalAlignment="Stretch" VerticalScrollBarVisibility="Auto">
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <TextBlock TextTrimming="CharacterEllipsis" Text="{Binding}"/>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </DataGrid.ColumnHeaderStyle>
    <DataGrid.Columns>
        <DataGridTextColumn Header="Dataset Description" Width="370">
            <DataGridTextColumn.CellStyle>
                <Style TargetType="{x:Type DataGridCell}">
                    <Setter Property="ToolTip" Value="Name of database"/>
                </Style>
            </DataGridTextColumn.CellStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>
于 2019-02-15T23:29:50.107 回答