如何在比例网格内剪辑文本块?
How to clip textblock inside proportional grid?
在 ListBox 内的 UserControl 中,我在 Grid 内有一个具有比例宽度 (Width="*") 的 TextBlock,我想采用网格的剩余宽度,但每当我调整 ListBox 的大小时到可以剪辑该 TextBlock 内容的大小,我得到一个滚动条。我怎样才能剪裁 TextBlock 宽度,这样我就不会得到水平滚动条?理想情况下用省略号剪掉它。
编辑:忘记提及 ListBox。
列表框正在滚动,因为它的默认行为是 HorizontalScrollBarVisibility
到 Auto
。
尝试将此 属性 设置为禁用:
<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 的顺序,您必须将其绑定到文本框的高度和宽度(可能使用转换器将这些值减半)。
在 ListBox 内的 UserControl 中,我在 Grid 内有一个具有比例宽度 (Width="*") 的 TextBlock,我想采用网格的剩余宽度,但每当我调整 ListBox 的大小时到可以剪辑该 TextBlock 内容的大小,我得到一个滚动条。我怎样才能剪裁 TextBlock 宽度,这样我就不会得到水平滚动条?理想情况下用省略号剪掉它。
编辑:忘记提及 ListBox。
列表框正在滚动,因为它的默认行为是 HorizontalScrollBarVisibility
到 Auto
。
尝试将此 属性 设置为禁用:
<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 的顺序,您必须将其绑定到文本框的高度和宽度(可能使用转换器将这些值减半)。