[英]How to display ellipse and/or scroll bar in DataGridTextColumn Header when column shrinks?
我試圖弄清楚當列縮小時如何強制列標題顯示橢圓和/或滾動條。 我知道textblock(列)中的數據可以縮小到橢圓形,但是我不知道如何使標頭做同樣的事情。 我通過以下方式定義數據網格(這是文本列的示例):
<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>
我想我可以實現一個偵聽器,以查看何時調整列的大小並重新設置標題值,但是我顯然想避免這種情況。 任何想法都歡迎!
您可以執行以下操作,實現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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.