这不是关于如何更改字体大小的问题。相反,当我在普通 TextBox
控件中键入(或粘贴)时,为什么我的字体大小会自行改变,如您所知,该控件仅支持一种颜色、一种字体和一种任何给定时间的字体大小。
我的代码:
using(FontDialog d = new FontDialog())
{
// The usual properties...
if(d.ShowDialog() == DialogResult.OK)
{
textbox1.Font = d.Font;
}
}
字体设置为 8pt。如果我将纯文本粘贴到其中,顶行将是 9 到 10pt,而底行会明显变小(大约 8 pt)。
我选择哪种字体、字体样式或字体大小并不重要;这种情况一直在发生!
更新
感谢您迄今为止的所有帮助。在下面回答您最近的问题:
我的应用以 .NET 4.5 为目标平台。
代码中没有混淆,因为我能够在一个新的 Windows 窗体项目中重现这个问题,只需要一个窗体、一个文本框和一个调用 FontDialog 的按钮。
为了回答有关我的视频驱动程序的问题,我确实需要支持我几周前购买的应用程序,他们告诉我运行 DXDiag,他们回复我说我的视频卡驱动程序已过时,但是我没想到是因为我总是每隔几个月检查一次。然后我去了制造商的网站,它说我已经为我的系统安装了最新的驱动程序。
Windows 更新还表示没有新的可用更新。不过,我会再次检查新版本的驱动程序。
我还在一个新的空白项目中进行了测试,在该项目中,我在 调用 FontDialog.ShowDialog() 之前显示了 TextBox 使用的字体,在显示之后以及在显示新字体之后已设置并且一切都匹配 - 但在文本框中更改字体/字体大小后仍然存在问题。
最佳答案
我怀疑您使用的高 DPI 屏幕没有使用 96 DPI 的精确倍数。在这种情况下,Windows 会将您的应用程序呈现到 96 DPI 的虚拟屏幕,然后将结果重新调整为新的 DPI。当应用程序的显示重新缩放时,DPI 不是 96 的精确倍数会导致舍入错误,结果字体最终看起来不均匀。
尝试将 DPI 设置为 Appendix C 中的其中一种尺寸微软的 Writing High-DPI Win32 Applications指导。
关于c# - 为什么在 Plain TextBox 中显示多种字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16820413/