是否可以在Silverlight中为多行(AcceptsReturn =“True”)文本框设置每行的字符数?就像HTML中的Textarea的Cols属性一样。
答案 0 :(得分:1)
不是真的。通常,您只需将高度和宽度设置为您想要的任何值。是否有特殊原因要求每行都有一定数量的字符?
<强> [编辑] 强>
我在这里发现了一些代码将字符串分成相等的块:
Splitting a string into chunks of a certain size
使用它,我想出了以下内容。它工作正常,但需要一些调整。
private void TextBox_KeyUp(object sender, KeyEventArgs e)
{
var text = (sender as TextBox).Text.Replace(Environment.NewLine, "").Chunk(8).ToList();
(sender as TextBox).Text = String.Join(Environment.NewLine, text.ToArray());
(sender as TextBox).SelectionStart = (sender as TextBox).Text.Length;
}
扩展方法:
public static class Extensions
{
public static IEnumerable<string> Chunk(this string str, int chunkSize)
{
for (int i = 0; i < str.Length; i += chunkSize)
yield return str.Substring(i, Math.Min(chunkSize, str.Length - i));
}
}