。我需要截断DataGridTextColumn LongTexts与“...”在右边,但我不知道“如何制作”像这样:
。现在不喜欢:
这是我的DataGrid XAML:
<DataGrid Name="Musics" AutoGenerateColumns="False" HorizontalGridLinesBrush="Transparent">
<DataGrid.Columns>
<!--<DataGridCheckBoxColumn ElementStyle="{StaticResource MaterialDesignCheckBox}">
<DataGridCheckBoxColumn.Header>
<CheckBox/>
</DataGridCheckBoxColumn.Header>
</DataGridCheckBoxColumn>-->
<DataGridTextColumn/>
<DataGridTextColumn Header="Título" Binding="{Binding Path=Title}" MaxWidth="400" SortDirection="Ascending" SortMemberPath="Title"/>
<DataGridTextColumn Header="Duração" Binding="{Binding Path=Duration}" ElementStyle="{StaticResource rightAlign}" IsReadOnly="True" CanUserResize="False">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="Padding" Value="4 8 2 8"/>
</Style>
</DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Intérprete" Binding="{Binding Path=Artist}" MaxWidth="100"/>
<DataGridTextColumn Header="Álbum" Binding="{Binding Path=Album}" MaxWidth="200"/>
<DataGridTextColumn Header="Género" Binding="{Binding Path=Genre}" MaxWidth="200"/>
<DataGridTextColumn Header="Classificação" Binding="{Binding Path=Classification}" ElementStyle="{StaticResource rightAlign}">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="Padding" Value="4 8 2 8"/>
</Style>
</DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Reproduções" Binding="{Binding Path=TimesPlayed}" ElementStyle="{StaticResource rightAlign}" IsReadOnly="True">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="Padding" Value="4 8 2 8"/>
</Style>
</DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Reproduzir"/>
<MenuItem Header="A seguir"/>
<MenuItem Header="Informações"/>
<MenuItem Header="Eliminar"/>
<MenuItem Header="Abrir no explorador"/>
<MenuItem Header="Adicionar a Playlis">
<MenuItem Header="Mais reproduzidas"/>
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
谢谢,并等待你的帮助:
答案 0 :(得分:3)
使用ElementStyle
:
<Grid>
<Grid.Resources>
<Style x:Key="TextBlockStyleKey" TargetType="{x:Type TextBlock}">
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
</Grid.Resources>
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Items}">
<DataGrid.Columns>
<DataGridTextColumn ElementStyle="{StaticResource TextBlockStyleKey}" Header="Name" Binding="{Binding Name}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
结果: