如何在比例网格内剪切文本块?

时间:2016-07-01 10:26:20

标签: c# wpf xaml textblock clipping

在ListBox内的UserControl中,我在Grid中有一个比例宽度(宽度=" *")的TextBlock,我想要剩余的宽度对于网格,但每当我将ListBox的大小调整为剪切该TextBlock内容的大小时,我都会得到一个滚动条。如何剪切TextBlock宽度以便我不会获得水平滚动条?理想情况下用省略号剪裁它。

编辑:忘记提及ListBox。

1 个答案:

答案 0 :(得分:1)

列表框正在滚动,因为它的默认行为是HorizontalScrollBarVisibilityAuto

尝试将此属性设置为已禁用:

<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">

对于剪裁到椭圆,这更复杂。您可以使用Clip属性轻松剪切到省略号:

            <TextBlock Text="Some very long thing that I'm putting in here to clip" Background="Blue">
                <TextBlock.Clip>
                    <EllipseGeometry Center="100,8" RadiusX="100" RadiusY="8" />
                </TextBlock.Clip>
            </TextBlock>

但是,要保持Center,RadiusX和RadiusY的顺序,你必须将它绑定到文本框的高度和宽度(可能使用转换器将这些值的一半)。