【发布时间】:2010-02-17 11:55:35
【问题描述】:
是否可以在 Silverlight 中为多行 (AcceptsReturn="True") 文本框设置每行的字符数?类似于 HTML 中 Textarea 的 Cols 属性。
【问题讨论】:
标签: silverlight textbox
是否可以在 Silverlight 中为多行 (AcceptsReturn="True") 文本框设置每行的字符数?类似于 HTML 中 Textarea 的 Cols 属性。
【问题讨论】:
标签: silverlight textbox
不是真的。通常,您只需将高度和宽度设置为您想要的任何值。您希望每行有一定数量的字符有什么特别的原因吗?
[编辑]
我在这里找到了一些将字符串分成相等的块的代码:
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));
}
}
【讨论】: