在wpf中以固定宽度设置文本块中的冗长文本

问题描述 投票:1回答:1

我在画布背景上有网格,可以在图片中看到。在第1行,我想标记列。我已经将TextBlock用于此目的。但是当字符数增加时,我无法看到TextBlock.e.g的全部内容。当内容为9990时,我可以看到它,但在下一个标签中,内容是10020,其中包含更多字符。我只能看到1002.矩形大小是30,它是绘制网格。 TextBlock Width是27,TextBlock的Margin是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>
c# wpf canvas textblock
1个回答
1
投票

正如我在对问题的评论中已经提到的那样,您可以将TextTrimmingTextBlock设置为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

© www.soinside.com 2019 - 2024. All rights reserved.