2014-02-24 155 views
1

我在我的项目中有一个数据网格,并且在获取字符串后,其中一部分不能放入,因为它们太长。我希望我的文本框列具有固定大小,所以我不想为文本框使用“自动”宽度属性,但我想知道:是否有某种属性可用于显示整个字符串?例如:如果字符串要长时间显示它的一部分,你可以适合,然后显示三个点(...)或一些这样的符号。点击三个点后显示文本框的整个值。甚至在滚动某个文本框之后显示整个字符串。在datagrid文本框中显示缺少的文本部分WPF

我的数据网格看起来像这样。

enter image description here

在那里你可以看到一些过长的字符串值被切断的。

这是数据网格中文本框的xaml代码。

<DataGrid Grid.Column="0" Grid.RowSpan="2" AutoGenerateColumns="False" Height="206" HorizontalAlignment="Left" Margin="12,265,0,0" Name="tabela" VerticalAlignment="Top" Width="556" SelectionChanged="tabela_SelectionChanged" ItemsSource="Binding MyObsCollection"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Type" Width="120" Binding="{Binding Type}"/> 
     <DataGridTextColumn Header="MapTo" Width="120" Binding="{Binding MapTo}"/> 
     <DataGridTextColumn Header="Name" Width="116" Binding="{Binding Name}"/> 
    </DataGrid.Columns>  
</DataGrid> 

回答

6

您可以设置TextTrimmingCharacterEllipsis上的TextBlock显示椭圆形的情况下,文本大于可用大小。

此外,您可以在Tooltip中显示完整的文本。这是你如何对一个DataGridTextColumn做到这一点:

<DataGridTextColumn Width="20" Binding="{Binding Name}"> 
    <DataGridTextColumn.ElementStyle> 
    <Style TargetType="TextBlock"> 
     <Setter Property="TextTrimming" Value="CharacterEllipsis"/> 
     <Setter Property="ToolTip" Value="{Binding Text, 
           RelativeSource={RelativeSource Self}}"/> 
    </Style> 
    </DataGridTextColumn.ElementStyle> 
</DataGridTextColumn> 
+1

谢谢你这完全成功了! :) –

+0

不客气nemo_87 .. :) –

+1

谢谢你,也为我工作过 –