我在画布背景上有网格,可以在图片中看到。在第一行,我要标记列。我已经为此目的使用了TextBlock。但是当字符数增加时,我看不到TextBlock的全部内容。例如,当内容为9990时,我可以看到它,但是在下一个标签中,内容为10020,其中包含更多字符。我只能看到1002。矩形大小为30,即绘制网格。 TextBlock宽度为27,TextBlock的边距为3。enter image description here我不想更改字体大小。
<Canvas x:Name="back_canvas" Height="12000" Width="{Binding CanvasWidth , UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,0,10,0" >
<Canvas.Background>
<DrawingBrush TileMode="Tile" Viewport="0,0,30,30" ViewportUnits="Absolute">
<DrawingBrush.Drawing>
<GeometryDrawing>
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0,0,30,30"/>
</GeometryDrawing.Geometry>
<GeometryDrawing.Pen>
<Pen Brush="Gray" Thickness="1"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</Canvas.Background>
<ItemsControl ItemsSource="{Binding TimeAxis}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Name="horizontalLabels" Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Margin="0,0,3,0" Width="27" Background="Red" Height="Auto" >
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Canvas>
答案 0 :(得分:1)
正如我在对该问题的评论中已经提到的那样,您可以将TextTrimming
中的TextBlock
设置为CharacterEllipsis
,以表示某些部分被切除,并在工具提示中添加完整的字符串。
这看起来像这样:
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" ToolTip="{Binding}" TextTrimming="CharacterEllipsis" Margin="0,0,3,0" Width="27" Background="Red" Height="Auto"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
这应该将诸如10020
之类的大数字从| 1002 |
更改为| 100... |
之类,并带有提示为10020
的工具提示