禁用亚像素渲染和抗锯齿。尝试:
SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);
尝试轻微增加文本框的字体大小(如果使用像素,请使用1/4s)。或者,以类似的方式略微更改行高。我认为问题可能是由于WPF对子像素的解释不正确,可能在错误的位置进行四舍五入。
既然您提到:
我有一个文本框,当输入时会垂直增长
我猜想它是一个从 TextBox
派生的 CustomControl
,并采用自定义渲染来垂直增长,而不是使用内置的文本换行能力。
由于我无法通过您提供的参数(使用 Ideal
)在库存的 TextBox 上重现您的问题(我已经在 VS 2013 上检查了 Framework 4.0 到 4.6),可能是因为您的自定义代码导致了模糊。
顺便问一下,没有使用内置的换行吗?
TextWrapping="Wrap"