C# ListView:启用文本修剪,而不是水平三角形工具栏

C# ListView:启用文本修剪,而不是水平三角形工具栏,c#,.net,wpf,formatting,string-formatting,C#,.net,Wpf,Formatting,String Formatting,我试图搜索谷歌,但我无法清楚地表达它 所以我们的想法是:若文本不能在TextBlock中完全显示,那个么应该删除文本的结尾并添加“…”。对于固定大小,我可以这样写: DetailsListView.Items.Add(string.Format("{0}.{1} - {2}...", i + 1, j + 1, somestring.Remove(15))); 但对于动态WPF布局,它看起来很难看 最好的方法是什么 我正在试这个,但不起作用 <ListView Grid.Ro

我试图搜索谷歌,但我无法清楚地表达它

所以我们的想法是:若文本不能在
TextBlock
中完全显示,那个么应该删除文本的结尾并添加“…”。对于固定大小,我可以这样写:

DetailsListView.Items.Add(string.Format("{0}.{1} - {2}...", i + 1, j + 1,  somestring.Remove(15)));
但对于动态WPF布局,它看起来很难看

最好的方法是什么


我正在试这个,但不起作用

    <ListView Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Margin="5" Name="TaskListView">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextBlock TextTrimming="CharacterEllipsis" Text="{Binding}"></TextBlock>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

只出现一个滚动条


无需自己动手,
TextBlock
已经可以为您完成以下操作:

<TextBlock TextTrimming="CharacterEllipsis"/>
当然,如果您的
TextBlock
位于一个按需增长的窗格中,则无需修剪-您可以在
TextBlock
列表视图上设置固定大小,并禁用水平滚动。


<TextBlock 
   TextTrimming="WordEllipsis" TextWrapping="NoWrap"
   FontSize="14">
   One<LineBreak/>
   two two<LineBreak/>
   Three Three Three<LineBreak/>
   four four four four<LineBreak/>
   Five Five Five Five Five<LineBreak/>
   six six six six six six<LineBreak/>
   Seven Seven Seven Seven Seven Seven Seven
</TextBlock>
一个 22 三三三 4444 五五五五 666666 七七七七七

如果您使用的是WPF,请检查此项,然后此链接可能会有用。请查看此答案:您的标题不清楚-您的意思是:“在滚动条出现时启用自动删除”?@markmnl现在已修复,我希望您应该使用ScrollViewer.HorizontalScrollBarVisibility
<TextBlock 
   TextTrimming="WordEllipsis" TextWrapping="NoWrap"
   FontSize="14">
   One<LineBreak/>
   two two<LineBreak/>
   Three Three Three<LineBreak/>
   four four four four<LineBreak/>
   Five Five Five Five Five<LineBreak/>
   six six six six six six<LineBreak/>
   Seven Seven Seven Seven Seven Seven Seven
</TextBlock>