【问题标题】:How to clip textblock inside proportional grid?如何在比例网格内剪辑文本块?
【发布时间】:2016-11-03 17:24:00
【问题描述】:

在 ListBox 内的 UserControl 中,我在 Grid 内有一个具有成比例宽度 (Width="*") 的 TextBlock,我想获取网格的剩余宽度,但每当我将 ListBox 调整为将剪辑该 TextBlock 内容的大小我得到一个滚动条。如何剪辑 TextBlock 宽度,以免出现水平滚动条?理想情况下用省略号剪裁。

编辑:忘了提到列表框。

【问题讨论】:

  • Grid 默认会裁剪内容,不支持滚动条。您是否在任何地方使用 ListBox 或 ScrollViewer?一些代码会很有用。 Grid 中 TextBlock 的默认行为听起来正是您想要的。你在使用 TextBOX(它支持滚动条)吗?
  • 是的,所说的网格在一个列表框内的用户控件内。
  • 离题:这是第 40,000 个xaml 问题,恭喜 OP。不过没有奖品。

标签: c# wpf xaml textblock clipping


【解决方案1】:

列表框正在滚动,因为它的默认行为是将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,您必须将其绑定到文本框的高度和宽度(可能使用转换器将这些值减半)。

【讨论】:

    猜你喜欢
    • 2017-01-10
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多