小弟我始终没搞明白为什么TextBox的控件模板里起关键作用的是ScrollViewer,请哪位帮小弟我解解惑

我始终没搞明白为什么TextBox的控件模板里起关键作用的是ScrollViewer,请哪位帮我解解惑!
TextBox控件模板内的:
<ScrollViewer Grid.Column="0" x:Name="ContentElement" BorderThickness="0" IsTabStop="False" Padding="{TemplateBinding Padding}"/>


是什么让TextBox能够接收用户输入的文字?

ScrollViewer的组成部分之一是ScrollContentPresenter,似乎也不是能够接收键盘输入的东东。

------解决思路----------------------
这个解释都比较麻烦了。你用的是SNOOP工具么?如果是,那就把 它的可视树种的每一个元素 的属性,定义 都去msdn上查询一边。
------解决思路----------------------
引用:
是不是应该理解为系统自带TextBox控件的OnApplyTemplate()里侦听了TextChanged事件,然后把用户输入写进这个ScrollViewer里,或者说类似这样的处理?


差不多。把文本拆成一行行,用 DrawingVisual 画到 TextView 上去,然后把TextView 放到 ScrollViewer 里。
------解决思路----------------------
可变大小的控件都是ScrollViewer

MSDN:
ContentElement 类,关于 ContentElement 类
查这个,你就懂了