通过修改样式让TextBox支持文本滑动
在Silverlight上,TextBox是有文本滚动的功能的,当TextBox的文本过长时,可以进行拖动的,TextBox使用 VerticalScrollBarVisibility 和 HorizontalScrollBarVisibility 来控制滚动条的显示
在Windows Phone上的TextBox 也拥有 VerticalScrollBarVisibility 和 HorizontalScrollBarVisibility 两个属性,但是当设置这两个属性Visible后,却发现TextBox上的文本滑动不了,下面对比Silverlight和WP上的TextBox样式
WP8上的TextBox样式如下:
Silverlight上的TextBox样式如下(Silverlight支持文本滚动)
通过对比TextBox的样式发现,WP8上的TextBox样式模板里面并没有ScrollViewer控件,而Silverlight中的TextBox是有ScrollViewer的,可以正常滚动,我们把WP8上的TextBox样式中的ContentControl改为ScrollViewer
测试后发现,WP8上的TextBox可以滑动了(但发现看不到ScrollBar)
控制TextBox显示文本的位置
有时候我们需要在代码中向TextBox的Text添加内容,比如表情,这时候TextBox不在编辑状态,我们添加文本后可以通过TextBox.SelectionStart去控制TextBox显示的位置,添加内容后TextBox.SelectionStart会被设置为0,如果需要显示文本的末尾,可以用 textBox.SelectionStart = textBox.Text.Length - 1;