【问题标题】:how to add emoticon in RichTextBox in WPF [duplicate]如何在WPF的RichTextBox中添加表情符号[重复]
【发布时间】:2012-09-05 02:04:58
【问题描述】:

可能重复:
how to add emoticons(smileys) into WPF richtext box

现在,我想知道,如何在 WPF 的 RichTextBox 中添加表情。 例如:当我输入 hi :) 时,它将在 RichTexBox 中返回为图像(微笑图像)。 我希望,你会帮助我。如果有人知道解决方案或示例代码

谢谢

【问题讨论】:

标签: c# wpf


【解决方案1】:

对此没有预构建的解决方案,但是,当您使用 WPF 时,您可以通过 TextChanged 事件或您的 PropertyChanged(如果它是 MVVM)对 RichTextBox 内的文本更改做出反应。

一旦你知道文本发生了变化,你就可以通过简单的搜索给它通过(有更好的方法来做这个解析,但为了一个简单的例子,只需使用简单的字符串搜索)。如果你找到你想要的文本,我的意思是,与你的笑脸 hi :) 相对应的标记,那么你可以通过在 RichTextBox 中使用 FlowDocument 来在该位置插入图像

解析前

 <RichTextBox>
    <FlowDocument>
     <Paragraph>
      <Run>Hello :) world!</Run>
     </Paragraph>
    </FlowDocument>
 </RichTextBox>

解析后

<RichTextBox>
    <FlowDocument>
     <Paragraph>
      <Span>
         <Run Text="Hello"/>
         <Image Width="16" Source="Your emoticon source"/>
         <Run Text=" world"/>
       </Span>
     </Paragraph>
    </FlowDocument>
 </RichTextBox>

这应该让您知道如何开始。

【讨论】:

  • 你的解决方案对我来说是最好的。如果我想在 C# 中使用后台代码,我该怎么做?
  • 然后在 XAML 中为 TextChanged 事件生成一个委托并对该方法进行更改,然后通过属性设置 RichTextBox 内容(请记住,您不会有类似 .Text 属性的东西,而是FlowDocument 确实是您需要的)。
  • 我是WPF初学者,不清楚。你能给我举个例子吗?
  • 我建议您开始阅读有关 Flow Documents 的内容:msdn.microsoft.com/en-us/library/aa970909.aspx 然后尝试一些东西,记住 SO 是关于具体问题而不是一般指导 :) 开始尝试一些东西,然后逐步询问对于您需要帮助的特定主题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 2016-04-05
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多