WPF:文本框中边框和文本之间的空格

WPF:文本框中边框和文本之间的空格,wpf,Wpf,我有一个宽度等于字母“a”宽度的文本框。但字母显示不正确 是否可以避免边界和“a”开头之间的空格Padding=“0”没有帮助 示例: 当您使用类似Snoop的工具检查可视化树时,您可以看到文本框由边框组成,边框包含滚动查看器,其中包括滚动内容呈现器,该呈现器通过文本框视图呈现文本框(1)内部类处理文本框中内容的呈现,默认情况下左右边距设置为“2”(2)。 我不认为您可以设置TextBoxView本身的样式来覆盖默认的边距值,但由于它在内部设置为“2”,您可以放心地假设将Textbox上的填充设

我有一个宽度等于字母“a”宽度的文本框。但字母显示不正确

是否可以避免边界和“a”开头之间的空格
Padding=“0”
没有帮助

示例:


当您使用类似Snoop的工具检查可视化树时,您可以看到
文本框
边框
组成,边框包含
滚动查看器
,其中包括
滚动内容呈现器
,该呈现器通过
文本框视图
呈现
文本框
(1)内部类处理文本框中内容的呈现,默认情况下左右边距设置为“2”(2)。 我不认为您可以设置
TextBoxView
本身的样式来覆盖默认的边距值,但由于它在内部设置为“2”,您可以放心地假设将Textbox上的填充设置为“-2,0”就可以了

编辑:

在 您可以在
TextBoxView
构造函数(第38行)中发现,有一个Margin属性设置为
bidicartinedicatorwidth
(第1219行)的常量值: 因此,在文本框的结尾和开头留出一些空间以便插入符号可见可能是有意义的

static TextBoxView()
{
// Set a margin so that the bidi caret has room to render at the B edges of content.
   MarginProperty.OverrideMetadata(typeof(TextBoxView), new FrameworkPropertyMetadata(new Thickness(CaretElement.BidiCaretIndicatorWidth, 0, CaretElement.BidiCaretIndicatorWidth, 0)));
}

(...)
// BiDi caret indicator width.
internal const double BidiCaretIndicatorWidth = 2.0;

试试
Padding=“-5,0”
或任何适合的值。这对我来说似乎很奇怪。如何确保所选值在所有条件下都能正常工作?