You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现WPF中相邻两个TextBlock仅截断第一个?

解决WPF双TextBlock自适应截断问题

直接用Grid布局就能实现,关键是给第一个TextBlock加HorizontalAlignment="Left",具体代码如下:

<Grid HorizontalAlignment="Stretch">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>

    <TextBlock Grid.Column="0"
               Text="这里放需要截断的长文本内容"
               TextTrimming="CharacterEllipsis"
               HorizontalAlignment="Left"/>

    <TextBlock Grid.Column="1"
               Text="固定显示的第二个文本"
               Margin="8,0,0,0"/>
</Grid>

原理说明:

  • 第一列设为*,用来分配父容器减去第二列后的剩余空间;第二列设为Auto,自适应第二个TextBlock的宽度。
  • 给第一个TextBlock设置HorizontalAlignment="Left",避免它在空间充足时拉伸占满整列,这样第二个TextBlock会紧跟在第一个后面。
  • 当父容器宽度变窄,第一列的可用空间不足以容纳第一个TextBlock的完整文本时,TextTrimming="CharacterEllipsis"就会触发,自动截断显示省略号,第二个TextBlock始终保持完整显示。

内容的提问来源于stack exchange,提问作者monadoboi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:22:43