WPF 自动调整字体大小,直到它适合父控件

Posted

技术标签:

【中文标题】WPF 自动调整字体大小,直到它适合父控件【英文标题】:WPF automatic resize font until it fits within parent control 【发布时间】:2013-01-30 15:49:51 【问题描述】:

我有一个用户控件,它的根元素是一个网格。

我还有一个 ContentControl,它用作加载数据时填充的某些文本的占位符。这个控件可以在用户控件中移动,所以它的位置可以在任何地方。

如果文本太长而无法容纳在用户控件的根网格中,我想减小 ContentControl 的字体大小,直到文本适合为止。

我的问题是我似乎找不到可以处理的事件来执行此过程。 我尝试使用 ContentControl.LayoutUpdated 事件;但是,此事件的 sender 参数似乎总是什么都没有......这真的没有帮助!

我非常期待有关如何实现这一目标的任何建议。

谢谢

-弗林尼

【问题讨论】:

您可以用 ViewBox 包围 ContentControl,该 ViewBox 将缩放 ContentControl 以适应网格。这是一个选项吗? 【参考方案1】:

将您的 ContentControl 包装在一个 Viewbox 设置为仅按比例缩小将为您执行此操作:

<Viewbox StretchDirection="DownOnly" Stretch="Uniform">
    <ContentControl Content="Some Text"/>
</Viewbox>

【讨论】:

以上是关于WPF 自动调整字体大小,直到它适合父控件的主要内容,如果未能解决你的问题,请参考以下文章

Textview:调整字体大小以匹配父级[重复]

WPF字体大小随着控件大小自动变化

WPF字体大小随着控件大小自动变化

您如何让 Silverlight 调整文本内容的大小以适合?

控件不适合调整 WPF 的大小

UITextView 自动大小