如何更改silverlight TextBox中的Tab字符宽度

时间:2012-01-11 03:48:27

标签: silverlight

silverlight TextBox中Tab(\ t)字符的宽度不等于4个空格或8个空格。太短了。 是否可以更改silverlight TextBox中显示的TAB(\ t)字符的宽度?

请注意,我希望避免使用空格替换TAB。 关于如何做到这一点的任何想法?

3 个答案:

答案 0 :(得分:2)

Silverlight不允许您更改TextBox中的制表符字符长度。

如果您在字符串中读取(从文件或其他内容)并将文本设置为它,那么如果您查看文本属性,您将看到转义标签(\ t)。搜索\ t很容易

TabTextBox.Text = TabTextBox.Text.Replace("\t", "    ");

所以这将用4个空格替换所有标签。

除了在TextBox中按Tab键外,不会标记文本。它将重点关注父UIElement中的下一个UIElement。

答案 1 :(得分:1)

或者也许在Tab键按下事件上,将字符串文字附加到文本框。与MyK的建议相似。

答案 2 :(得分:1)

如果您要尝试显示,请编写转换器。语法就是这样 - 只需抓住一个例子,将其重命名为< tabstoptexttospacedtextconverter&#39 ;,在app.xaml中添加对本地控件的引用,然后创建它的实例并给它一个x :名称使用它。绑定文本框的数据并为其分配新的转换器。

它会有点麻烦,因为您必须确定最终显示TB的适当宽度,然后可能使用转换器参数来完成这项工作。但是长话短说,在\ t上分开,然后foreach(splitSourceText中的字符串str)做这样的事情:

for (int i = 0; i < (str.Length % 8 > 0 ? str.Length % 8 : 8); i++) str+= " ";

您可以使用参数限制拆分字符串数组上的字符,或者首先拆分\ r \ n。