【发布时间】:2019-02-21 21:57:49
【问题描述】:
我创建了一个布尔代数简化器。为此,我在简化过程中的关键阶段取表达式,将其添加到列表中,最后使用这些表达式来展示计算机如何简化表达式。例如。对于B•(A+~A),标签的内容将是:
B•(A+~A) // Initial Expression
= B•(1) // Brackets simplified
= B•1 // Brackets removed
= B // Simplified expression.
我创建了一个标准面板,并在其中拖放了标签,以将标签停靠在面板中。
我想让文本的字体大小发生变化,使其完全适合面板,因为一些复杂的表达式可能有很多工作行,因此可能不适合屏幕。
但是,如果用户输入了一个非常简单的表达式,例如A+1,答案和工作线会很小。在这种情况下,我不希望文本填充面板,因为字体会很大。
因此,我试图使标签的字体大小发生变化以使表达式适合面板,但限制最大字体大小,以便少量文本不会使用大字体大小。
有人知道怎么做吗?
我在网上搜索并找到以下代码,但这并没有填满面板:
WorkingOutLabel.Font = new Font(WorkingOutLabel.Font.FontFamily,
PanelHoldingWorkingLabel.Font.Height, FontStyle.Regular);
【问题讨论】:
-
您想减小字体大小,以便生成的文本与预定义的宽度匹配,还是您想拉伸/压缩文本,保持相同的字体高度或文本应该简单包裹在指定区域内?
-
@Jimi 我不明白你的意思。我需要它来适应面板,这样面板的宽度和高度就可以看作是预定义的边界。
-
我认为 Jimi 说有 3 种方法可以做到这一点:减小字体大小(我相信这是您所要求的),压缩文本(字母变窄但高度保持不变),或者换行。
-
如果您认为缩放字体以适合您的区域可能对您有用,您可以使用
Graphics.ScaleTransform()方法,其中缩放是容器宽度与字符串测量宽度之间的关系(当字符串宽度大于容器宽度时)。 -
@RufusL 感谢您的澄清。我想减小和增大字体大小。