WP&Win10开发: RichTextBlock实现富文本并处理换行
2024-10-19 00:33:17
思路:
1.构建字典。
2.在字符串中匹配字典的key,将匹配到的key转换成对应的value
3.将替换后的字符串,转化成xaml形式,加载该xaml以实现富文本。
代码如下:
private Paragraph getRichText(string richText)
{
var r = new Regex(builder.ToString()); //获取正则。
var mc = r.Matches(richText); //匹配富文本,获取匹配到的集合。
foreach (Match m in mc) //遍历集合将richText中所有的值转换成xaml的形式。
{
//string.Format 中的内容不要出现换行符,否则会出现换行出错。
richText = richText.Replace(m.Value, string.Format(@"<InlineUIContainer><Border><Image Source=""ms-appx:///Assets/Emoji/{0}.png"" Width=""30"" Height=""30""/></Border></InlineUIContainer>", emojiDict[m.Value]));
}
richText = richText.Replace("\r\n", "<LineBreak/>"); //将换行符转换成<LineBreak/>,用于实现换行。 //生成xaml
var xaml = string.Format(@"<Paragraph
xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
<Paragraph.Inlines>
<Run></Run>
{0}
</Paragraph.Inlines>
</Paragraph>", richText);
var p = (Paragraph)XamlReader.Load(xaml);
p.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
return p;
}
Demo分享链接:http://pan.baidu.com/s/1hqGVOcW
运行图如下:
有问题请加群:53078485
最新文章
- Oracle ------ SQLDeveloper中SQL语句格式化快捷键
- Qt 之 数字钟
- Activemq Jolokia
- XAMPP 在windows下无法启动Apache解决方案
- PDF判断打印是A4还是B5
- label标签的属性
- java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包。
- python中raw_input()与input()
- jquery模仿css3延迟效果
- MassTransit 实现发布/订阅
- ckplayer跨域调用
- ActiveMQ(2)---ActiveMQ原理分析之消息发送
- transformer 源码
- EasyUI学习总结(三)——easyloader源码分析(转载)
- unigui回车代替TAB
- MVC架构中,用户的请求简单梳理
- Asp.net中操作Excel的代码解析
- Linux sar
- 黑客之google入侵网站常用方式 2
- 使用Git将本地项目上传到Github操作详解