UWP多语言支持下,如何在TextBox中实现换行显示
UWP Resources.resw 实现TextBox多语言文本换行解决方案
嘿,我之前做UWP多语言开发时刚好踩过这个坑!你已经把TextBox的x:Uid="eula"、TextWrapping="Wrap"和AcceptsReturn="True"都配置对了,问题出在Resources.resw里换行符的正确用法上——之前试的\n、<br/>这些确实不适用,下面给你两种靠谱的解决方法:
方法一:用Visual Studio可视化编辑器直接编辑
打开你的Resources.resw文件,添加一个新的字符串资源:
- 名称:填写
eula.Text(因为x:Uid会自动关联控件的对应属性,这里绑定的是TextBox的Text属性) - 值:直接输入你的EULA内容,需要换行的地方按回车键就行,比如:
保存后,运行应用就能看到TextBox里的文本自动换行了。欢迎使用本应用,请仔细阅读以下许可条款: 1. 本应用仅供个人非商业用途使用 2. 禁止未经授权复制、分发或修改本应用 3. 本应用不提供任何形式的担保
方法二:手动编辑Resources.resw的XML源码
如果你需要直接编辑resw的XML文件,要使用Windows系统标准的CR+LF换行转义序列 ,同时必须给<data>标签加上xml:space="preserve"属性(保留空格和换行格式),示例代码如下:
<data name="eula.Text" xml:space="preserve"> <value>欢迎使用本应用,请仔细阅读以下许可条款: 1. 本应用仅供个人非商业用途使用 2. 禁止未经授权复制、分发或修改本应用 3. 本应用不提供任何形式的担保</value> </data>
为什么之前的尝试无效?
\n是Unix/Linux风格的换行符,Windows控件默认识别的是\r\n(CR+LF)组合,单独的\n无法触发换行;<br/>是HTML换行标签,TextBox是纯文本控件,不会解析HTML内容; 只是回车符(CR),缺少换行符(LF),同样无法让TextBox正确换行。
内容的提问来源于stack exchange,提问作者Shahid Thaika
相关产品推荐
相关产品推荐

