最近在开发一个Metro风格的简易文本编辑器,自然而然就想到了TextBox控件,在Metro开发中,这个控件被放到了Windows.UI.Xaml.Controls命名空间下。跟WinForm开发有一点不同的是,如果想要显示多行文本,就需要把AcceptsReturn属性设为True, 而不是Multiline属性。还有另一点比较特别的是,它对换行符的处理跟之前的大大不同了。请看图:
1.
从这里可以看到,把文本文件读到字符串后,其中的换行符是解释为\r\n,这个跟 Windows 下文本文件保存格式吻合。
2.
但是在把string设给TextBox的Text属性之后,可以发现原来的换行符\r\n变成了\r,而且文本在TextBox中显示正常,该换行的地方也换行。
这样的话,如果要把TextBox中的字符保存到文件,就要先把\r替换成\r\n,不然在 Windows 中文本就全乱了。
我在WinForm中验证过是没有这个问题的。
因为看不到源代码,我也没办法再作深一步的探究,如果有哪位朋友知道原因的话,麻烦告知一声,如果是我火星了,请轻喷:)