Я пытаюсь вставить в буфер обмена фрагмент HTML и простой текст одновременно, чтобы редакторы с поддержкой HTML могли вставлять HTML, а другие редакторы могли использовать простой текст.
Clipboard.SetData(DataFormats.Html, htmlWithHeader);
Clipboard.SetData(DataFormats.UnicodeText, plainText);
Но фактически в буфер обмена помещается только последний формат. В приведенном выше примере буфер обмена будет содержать только открытый текст (как показано Clipboard.GetDataObject().GetFormats()
). И если я поменяю строки местами, в буфере обмена будет только формат HTML.
Как я могу одновременно поместить в буфер обмена оба формата?
1 ответ
Вы НЕ можете использовать Clipboard.SetData
для установки как HTML, так и обычного текста. Второй вызов SetData очистит содержимое буфера обмена, которое было установлено первым вызовом, и сохранит новые данные.
Вам следует использовать DataObject и Clipboard.SetDataObject ().
Примере:
DataObject dataObj = new DataObject();
dataObj.SetData(DataFormats.Html, htmlWithHeader);
dataObj.SetData(DataFormats.Text, plainText);
Clipboard.SetDataObject(dataObj);
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.
Clipboard
, затем создать свойDataObject
из этого, а затем добавить свои элементы who? Таким образом, вы не удалите существующую датуClipboard
?