2017-02-11 36 views
0

我一直试图复制emojis到剪贴板以各种方式工作,但没有任何工作。表情符号只是代替空格。System.Windows.Copy()不适用于Emojis

Clipboard.SetText(message, TextDataFormat.UnicodeText); 

我试过做各种转换,但他们也没有给出任何结果。

虽然,如果我将相同的表情符号粘贴到文本框,然后尝试将其复制回来 - 它的工作原理。我甚至尝试从代码隐藏创建一个TextBox,填充我的消息并再次复制 - 不起作用。

+0

这些表情符号是否采用适当的Unicode格式? –

+0

你能提供一个这样的表情符号的例子(这不起作用)? – Alexei

+0

@SpencerWieczorek是的。 'char.ConvertToUtf32(upper,lower)'返回适当的十进制码,例如128076为“”。 @Alexei,没有工作。像这样或 – Dainius

回答

0

我用下面的例子,它为我工作:

public MainWindow() 
    { 
     InitializeComponent(); 

     TextBlock tb = new TextBlock(); 
     var ch = char.ConvertFromUtf32(128076); 
     tb.Text = ch.ToString(); 
     Clipboard.SetText(ch.ToString(), TextDataFormat.UnicodeText); 
     tb.Text += Clipboard.GetText(TextDataFormat.UnicodeText); 
     this.Content = tb; 
    } 

TextBlock.Text是。也许问题是关于你如何管理文本回来!

+0

这似乎是诀窍。我试图将文本粘贴到文本框中,然后选择它并复制它。它仍然像是某种类型的bug,因为这是一种复制东西的方式,不是吗? – Dainius

+0

不知道你的方法。再解释一下,也许我们可以提供帮助。这个例子显示了Clipboard.SetText(...)和Unicode之间没有任何错误! – Ron

+0

经过进一步调查,我注意到我所需要做的就是使用emojies在字符串上调用'ToString()'方法。看起来很奇怪。 – Dainius