微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 最小化Textblock的大小

目前,如果我有< TextBlock>字体大小为200的元素,整个元素占用的空间比需要的多得多.

蓝色轮廓(来自Blend)显示元素占用的空间,当需要的时候很容易就会有一半.无论如何,我可以消除那个空间,使我的元素没有这么多间隔?我已经尝试过边距,填充等,但大多数方法似乎都不起作用.

理想情况下,我希望< textblock>仅占用红色框表示的空间量

编辑:

为了回应stijn7,确实为其他字母(g,p,q等)保留了一些空间.但是顶部仍然有很多空间(1是Segoe UI中最高的字符).如果无法剪切文本块,无论如何我是否可以调整它以使其没有浪费的空间?

解决方法

这里的问题是TextBlock的高度合并了 ascender and descender,以便渲染具有一系列高度的字符.您选择的角色恰好跨越字体 x-height,但不会超出.为了达到你想要的效果,你需要一个稍低级别的文本渲染API,我建议尝试 FormattedText类:

Provides low-level control for drawing text in Windows Presentation
Foundation (WPF) applications.

这个类有MaxTextHeight属性.我没试过这个,但有可能它会给你所需要的信息.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐