c# - .如何使用 "..."截断 DataGridTextColumn LongText

标签 c# wpf datagrid truncate

.我需要在右侧截断带有“...”的 DataGridTextColumn LongText,但我不知道像这样“如何制作”:

What i Want

.与现在不同:

Actual

这是我的 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>

谢谢,期待您的帮助:

最佳答案

使用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>

结果:

enter image description here

关于c# - .如何使用 "..."截断 DataGridTextColumn LongText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34463316/

相关文章:

c# - 如何刷新主/父组件中的 blazor 子/子组件?

wpf - 我们应该迁移到 WPF 还是 Winforms?

.net - Avalon 文本编辑器中上下键的光标位置没有改变

c# - 将 WPF DataGrid 绑定(bind)到 DataTable

c# - 使用 lambda/linq 查询返回组中的最小值

c# - 如何删除所有空的 XElements

c# - 当(当前)只有一个实现它的类时,您是否应该创建一个接口(interface)?

c# - 在 Caliburn Micro 上验证

c# - WPF 工具包 DataGridCell 样式 DataTrigger

wpf - 调整 WPF 列表或网格中的字体大小以正确使用空间