我正在 WPF 中编写一个聊天应用程序(使用 MVVM),当用户将消息提交到聊天流中时,我想用实际的笑脸图标替换任何笑脸表情,例如 :-) :-/ :-D 等。
我编写了一个转换器来对消息进行线性搜索并识别笑脸。我的问题是,一旦我确定了笑脸表情,如何将包含笑脸的文本块替换为实际图标?
如果您觉得有更好或更有效的方法来做到这一点,我很想知道......
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// The message passed in to the converter by calling XAML code
var message = System.Convert.ToString(value);
// Perform a linear search on the message
for (int i = 0; i < message.Length - 1; i++)
{
var c = message[i];
// Look for the character ':'
if (c == ':'
// Ensure that it has 2 more characters after it
&& i + 2 <= message.Length - 1 &&
// If it's the last character then that's fine
((i + 2 == message.Length - 1) ||
// Or else it should be followed by an empty space
(i + 3 <= message.Length - 1 && message[i + 3] == ' ')))
{
var expression = message.Substring(i, 3);
message = message**.Replace(expression, @".\Emotions\1.png");**
}
}
return message;
}
从我的 XAML 调用转换器
<TextBlock Text="{Binding Content, Converter={converter:EmotionConverter}}" />
这不起作用,我认为它只是替换了文本,我需要一种方法来传回图像,有什么建议我该怎么做?