如何在Silverlight中为文本框设置'RowLength'?

时间:2010-02-17 11:55:36

标签: silverlight textbox

是否可以在Silverlight中为多行(AcceptsReturn =“True”)文本框设置每行的字符数?就像HTML中的Textarea的Cols属性一样。

1 个答案:

答案 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));
    }
}