Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在silverlight文本框中更改选项卡字符宽度_Silverlight - Fatal编程技术网

如何在silverlight文本框中更改选项卡字符宽度

如何在silverlight文本框中更改选项卡字符宽度,silverlight,Silverlight,silverlight文本框中制表符(\t)的宽度不等于4个空格或8个空格。太短了。 是否可以更改silverlight文本框中显示的制表符(\t)字符的宽度 请注意,我希望避免用空格替换制表符。 有什么办法吗?Silverlight不允许您更改文本框中的制表符长度 如果读取字符串(从文件或其他内容)并将文本设置为字符串,则如果查看文本属性,将看到转义选项卡(\t)。搜索一个\t很容易 TabTextBox.Text = TabTextBox.Text.Replace("\t", " ")

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


请注意,我希望避免用空格替换制表符。
有什么办法吗?

Silverlight不允许您更改文本框中的制表符长度

如果读取字符串(从文件或其他内容)并将文本设置为字符串,则如果查看文本属性,将看到转义选项卡(\t)。搜索一个\t很容易

TabTextBox.Text = TabTextBox.Text.Replace("\t", "    ");
因此,这将用4个空格替换所有选项卡


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

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

如果您想让它显示出来,请编写一个转换器。语法很简单——只需抓取一个示例,将其导出,重命名为“tabstoptexttospacedtextconverter”,在app.xaml中添加对本地控件的引用,然后创建一个实例并为其指定一个x:name来使用它。绑定文本框的数据并将其指定为新的转换器

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

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

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

如果您按照Sineauthm的建议执行操作,请确保取消tab事件以将焦点放回到文本框上。不确定要实现什么。制表符来自文本框数据源。我将Textbox的Text属性绑定到一个字符串,该字符串包含选项卡。如果我用四个空格替换'\t',它将不能很好地工作。当我从文本框剪切或复制文本时,它不会得到真正的“\t”,而是一些空格。当我从其他编辑器将一些字符串复制到文本框时,如果字符串包含空格,结果似乎很奇怪。不幸的是,Silverlight不支持TabStops。您唯一能做的就是确保将文本解析为有限数量的空格,而不是\t。显然,当您将文本复制到支持TabStops(如Microsoft Office)的应用程序时,它看起来不会像选项卡,而是像n空格。我甚至看了Silverlight 5,所以看起来不可能。谢谢你的回复。是的,SL5也有同样的问题。我在WPF中检查它,似乎WPF也有同样的问题。我想避免用空格替换制表符。就像替换它一样,如果datasouce with选项卡保存后,数据源将被更改。