WPF中对应Windows Forms textBox.Lines获取文本数组的等效方案
WPF TextBox 替代 WinForms Lines 属性的数组实现方案
我完全懂你的痛点——在WinForms里一行string[] file3 = textBox1.Lines;就能轻松把文本框内容转成字符串数组,换到WPF里找不到这个现成属性确实有点挠头。别担心,WPF里有几种直接返回字符串数组的等效实现,完美匹配你的需求:
用系统换行符拆分(最接近WinForms行为)
直接借助TextBox.Text属性,结合String.Split和Environment.NewLine来拆分,它会自动适配当前系统的换行规则(Windows下就是\r\n),代码和WinForms一样简洁:string[] lines = textBox.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.None);兼容所有换行符场景
如果你的文本可能包含不同格式的换行符(比如单独的\n或\r),可以用更全面的拆分规则,确保所有换行场景都能正确识别:string[] lines = textBox.Text.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);用TextBox内置的行操作方法
WPF的TextBox提供了LineCount(获取总行数)和GetLineText(获取指定行内容)的方法,我们可以循环组装成数组,注意要去掉GetLineText返回内容末尾的换行符,和WinForms的Lines行为保持一致:string[] lines = new string[textBox.LineCount]; for (int i = 0; i < textBox.LineCount; i++) { lines[i] = textBox.GetLineText(i).TrimEnd('\r', '\n'); }
小提示:要确保你的WPF TextBox开启了多行模式,也就是设置
AcceptsReturn="True",否则这些方法只会返回单行内容哦。
内容的提问来源于stack exchange,提问作者JPG
相关产品推荐
相关产品推荐

