Reputation: 23
. I Need Truncate The DataGridTextColumn LongTexts With "..." On The Right, But i Have No Idea Of "How To Make It" Like This:
. ANd Not Like Are Now:
This Is My 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>
Thanks, And Waiting For Your Help :
Upvotes: 2
Views: 1755
Reputation: 37770
Use 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>
Result:
Upvotes: 6