这不是关于如何更改字体大小的问题。更确切地说,为什么我的字体大小会随着我在普通TextBox
控件内键入(或粘贴)而自行更改,正如您所知,它只支持一种颜色,一种字体和一种字体大小。任何给定的时间。
我的代码:
using(FontDialog d = new FontDialog())
{
// The usual properties...
if(d.ShowDialog() == DialogResult.OK)
{
textbox1.Font = d.Font;
}
}
字体设置为8pt。如果我将纯文本粘贴到其中,则顶行将为9到10pt,而底线明显更小(约8磅)。
我选择哪种字体,字体样式或字体大小无关紧要;这种情况一直在发生!
感谢您迄今为止提供的所有帮助。请回答您最近的问题:
我的应用程序针对的是.NET 4.5。
代码中没有混淆,因为我能够在一个新的Windows窗体项目中重现这个问题,只有一个Form,一个TextBox和一个调用FontDialog的Button。
要回答有关我的视频驱动程序的问题,我确实需要支持我几周前购买的应用程序,他们告诉我运行DXDiag,他们回复我说我的视频卡驱动程序已过时,但是我不认为是因为我每隔几个月就会检查一次。然后我去了制造商的网站,它说我已经为我的系统安装了最新的驱动程序。
Windows Update还表示没有新的可用更新。不过,我会再次检查新版本的驱动程序。
我还在一个新的空白项目中进行了测试,我在调用FontDialog.ShowDialog()之前显示TextBox 使用的字体,并在显示之后和新字体之后显示已设置且一切都匹配 - 但在更改文本框内的字体/字体大小后仍然存在问题。
答案 0 :(得分:3)
我怀疑您使用的High-DPI屏幕没有使用96 DPI的精确倍数。在这种情况下,Windows会将您的应用程序渲染到96 DPI的虚拟屏幕,然后将结果重新调整为新的DPI。当应用程序的显示重新调整时,DPI不是96的精确倍数会导致舍入错误,因此字体最终看起来不均匀。
尝试将DPI设置为Microsoft Appendix C指南的Writing High-DPI Win32 Applications中的一种尺寸。