答案 0 :(得分:0)
使用诸如Snoop之类的工具检查视觉树时,您会发现<div class='todo'>
<div class='todo__sidebar'>
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
</div>
</div>
<div class='modal'>
<span>12345</span>
</div>
由TextBox
组成,其中Border
包含ScrollViewer
,其中ScrollContentPresenter
呈现了实际的内容TextBox
和TextBoxView
(1)内部类处理文本框中内容的呈现,默认情况下左右边距设置为“ 2”(2)。
我认为您无法设置TextBoxView
本身的样式以覆盖默认边距值,但是由于它在内部设置为“ 2”,因此可以放心地假设将Textbox上的Padding设置为“ -2,0”是可以的。
编辑:
在TextBoxView documentation中
您会发现在TextBoxView
构造函数(第38行)中,Margin属性设置为BidiCaretIndicatorWidth
的常量值(第1219行):
因此,可能有必要在TextBox的末尾保留一些空间,以便插入符号可见
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;