2015-12-25 2 views
2

. Мне нужно усечь DataGridTextColumn LongTexts With "..." справа, но я не имею представления о "Как сделать это" Like This:. Как урезать 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> 

Спасибо, и ждут вашей помощи:

+0

Будет ли это http://stackoverflow.com/questions/3510029/wpf-data-grid-text-ellipsis-not-working билет мне какую-либо ценность для вас? –

+0

. Позвольте мне попробовать :) –

+0

. Very Thanks Bro, Thats Help: D –

ответ

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> 

Результат:

enter image description here

+0

. Позвольте мне попробовать ... :) –

+0

. Не работает Брат, То, что я сделал: 'code' <Стиль x: Ключ =" rightAlign "TargetType =" {x: Type TextBlock} "> <Свойство Setter =" HorizontalAlignment "Value =" Right "/> < Setter Property = "TextTrimming" Value = "CharacterEllipsis" /> 'code' –

+0

@EleandroDuzentos: как вы применяете этот стиль? – Dennis

Смежные вопросы