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