私は、顔文字を表示するリッチテキストボックスからテキストをコピーするための、きれいな方法を探しています。チャットを選択することができるskypeを考えてください。それは、絵文字イメージをコピーしてテキスト表現(スマイリーイメージから:)などに変換します)。 MVVMパターンを使用しています。wpfの画像を表示するリッチテキストボックスから絵文字「テキスト」をコピーする
5
A
答えて
4
RichTextBoxコンテンツの解析をテキストに設定する方法がわかりません。以下は、xml linqを使用する1つの方法です。正規表現はうまくいくかもしれませんが、私はそれらを吸います。 RichTextBoxのConvertToTextメソッドにFLowDocumentを渡します。
private static string ConvertToText(FlowDocument flowDocument)
{
TextRange textRangeOriginal =
new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd);
string xamlString;
using (MemoryStream memoryStreamOriginal = new MemoryStream())
{
textRangeOriginal.Save(memoryStreamOriginal, DataFormats.Xaml);
xamlString = ASCIIEncoding.Default.GetString(memoryStreamOriginal.ToArray());
}
XElement root = XElement.Parse(xamlString);
IEnumerable<XElement> smilies =
from element in root.Descendants()
where (string)element.Attribute("FontFamily") == "Wingdings" && IsSmiley(element.Value)
select element;
foreach (XElement element in smilies.ToList())
{
XElement textSmiley = new XElement(element.Name.Namespace + "Span",
new XElement(element.Name.Namespace + "Run", GetTextSmiley(element.Value)));
element.ReplaceWith(textSmiley);
}
using (MemoryStream memoryStreamChanged = new MemoryStream())
{
StreamWriter streamWriter = new StreamWriter(memoryStreamChanged);
streamWriter.Write(root.ToString(SaveOptions.DisableFormatting));
streamWriter.Flush();
FlowDocument flowDocumentChanged = new FlowDocument();
TextRange textRangeChanged =
new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd);
textRangeChanged.Load(memoryStreamChanged, DataFormats.Xaml);
return textRangeChanged.Text;
}
}
private static string GetTextSmiley(string value)
{
switch (value)
{
case "J" :
return ":)";
case "K" :
return ":|";
case "L" :
return ":(";
default :
throw new ArgumentException();
}
}
private static bool IsSmiley(string value)
{
return value == "J" || value == "K" || value == "L";
}
+1
優れた作品! –
+0
フランクに感謝、それは私がちょうど行く必要があったクールな問題だった。 –
関連する問題
- 1. ウェブ上にiOS絵文字のユニコード文字を表示する
- 2. データベースからWPFで画像を表示
- 3. Snackbar/Toast/Textviewに絵文字/絵文字を表示する方法
- 4. WPFリッチテキストボックス内のテキストを置換する
- 5. Pythonのテキストから絵文字フラグを削除する
- 6. リストビューに画像を表示するwpf
- 7. WPF - ダイナミックに画像を表示する
- 8. 画像を表示するための長文文字列を表示する
- 9. HTMLで絵文字が見つからない場合はテキストを表示
- 10. Emojiareaoneすべての絵文字をページに表示するLoad
- 11. 選択した絵文字画面を表示
- 12. アクセス2013関係の絵文字を表示するには?
- 13. WPFリッチテキストボックスで日本語の文字を設定する
- 14. スクロールのテキストフィールドに文字列を含む絵文字を表示
- 15. UITextFieldから絵文字を入力してUILabelに表示する方法は?
- 16. 絵文字表示は? MySQLデータベースの
- 17. 表示ジャンボトロンの背景絵文字
- 18. URLから画像を表示する
- 19. android:html文字列と画像を表示
- 20. iOS 9.0で絵文字キーボードをプログラムで表示する
- 21. ユニコード絵文字を表示する機能
- 22. Facebook Messengerボットに絵文字を表示するには?
- 23. PowerShellでUnicode絵文字を表示する
- 24. Androidキーボードにカスタム絵文字を表示する
- 25. HTMLタグの画像をテキスト表示で表示しますか?
- 26. UILabelに絵文字を表示していますか?
- 27. 表示絵文字/感情アイコン
- 28. 画像のコピーと貼り付けから改行文字を削除する
- 29. Mysqlのあるテーブルから別のテーブルにコピーしたときに絵文字が表示されない
- 30. elasticsearchで絵文字/絵文字を検索するには?
これに対して奨励金を開始すると考えましたか? –