在datagrid文本框WPF中显示缺少的部分文本

时间:2014-02-24 08:31:21

标签: c# wpf datagrid textbox

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

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

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>

1 个答案:

答案 0 :(得分:7)

您可以在TextBlock上将TextTrimming设置为CharacterEllipsis,以便在文字大于可用尺寸的情况下显示椭圆。

另外,您可以在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>