初学uwp,打算写一个云存储的记事本,了解到RichEditBox富文本编辑器。对写数据库的思路做了一个处理
RichEditBox的内容是带格式的,所以写到数据库不能用单纯的纯文本
其实就两行核心代码就可以了
将RichEditBox内容读取,转为string
将string读取,写到RichEditBox
这两个问题就是实现写到数据库的核心
经过我的瞎几把折腾,找到了这个api
定义一个字符串用来接受富文本的内容
String ras="";
通过Document对象的方法GetText,第一个参数就是rtf的文本格式,第二个是接受文本的字符串,前缀要加out(我c#临时出家,啥都不知道)
RichEditBox.Document.GetText(Windows.UI.Text.TextGetOptions.FormatRtf,out ras);
这个时候ras已经读取到了带格式的文本了
以下格式的富文本,写到字符出后
{\rtf1\fbidis\ansi\ansicpg936\deff0\nouicompat\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 Microsoft YaHei UI;}}
{\colortbl ;\red0\green0\blue0;}
{\*\generator Riched20 10.0.17134}\viewkind4\uc1
\pard\tx720\cf1\b\f0\fs23\lang2052\'ce\'d2\'d6\'bb\'ca\'c7\b0\i\'d2\'bb\'b8\'f6\ul\i0\'b2\'e2\'ca\'d4\par
}
变成了奇怪的东西。。。
不重要,转手,把上面奇怪的字符串反写到RichEditBox
RichEditBox.Document.SetText(Windows.UI.Text.TextSetOptions.FormatRtf, ras);
嗯。。就可以了。。效果就不贴了。。
写数据库只需要把奇怪的字符串写过去就可以了
如果又转义符问题的话,C#可以在字符串定义的时候加上@忽略转义符。。厉害了