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



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

请注意,我希望避免用空格替换TAB。有什么想法吗?

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

如果您读取字符串(来自文件或其他内容)并将Text设置为该字符串,那么如果查看Text属性,您将看到转义选项卡(\t)。搜索很容易

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

因此,这将用4个空格替换所有选项卡。

此外,在文本框中按tab键不会对文本进行制表。它将关注父UIElement中的下一个UIElement。

或者在tab键按下事件中,将字符串文本附加到文本框中。类似于MyK的建议。

如果您想让它显示出来,请编写一个转换器。语法就是这样的——只需举一个例子,把它去掉,重命名为"tabstoptexttospacedtextconverter",在app.xaml中添加对本地控件的引用,然后创建一个它的实例并给它一个x:name来使用它。为文本框绑定数据,并为它分配新的转换器。

这会有点麻烦,因为您必须确定最终显示TB的适当宽度,然后可能使用转换器参数来实现这一点。但长话短说,在\t上拆分,然后foreach(splitSourceText中的字符串str)做如下操作:

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

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

最新更新