Eleandro Duzentos
Eleandro Duzentos

Reputation: 23

. How To Truncate DataGridTextColumn LongText With "..."

. I Need Truncate The DataGridTextColumn LongTexts With "..." On The Right, But i Have No Idea Of "How To Make It" Like This:

What i Want

. ANd Not Like Are Now:

Actual

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

Answers (1)

Dennis
Dennis

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:

enter image description here

Upvotes: 6

Related Questions