Domanda

Voglio scrivere in formato HTML, ma non riesco nemmeno a farne funzionare un semplice esempio MSDN.

http://msdn.microsoft.com/en-us/library /tbfb3z56.aspx

Questa app console, uno sganciatore circolare per appunti, funziona per chiunque?

using System;
using System.Windows; //Need to add a PresentationCore or System.Windows.Forms reference

class Program {
    [STAThread]
    static void Main( string[] args ) {
        Console.WriteLine( "Copy a small amount of text from a browser, then press enter." );
        Console.ReadLine();

        var text = Clipboard.GetText();
        Console.WriteLine();
        Console.WriteLine( "--->The clipboard as Text:" );
        Console.WriteLine( text );

        Console.WriteLine();
        Console.WriteLine( "--->Rewriting clipboard with the same CF_HTML data." );
        //***Here is the problem code***
        var html = Clipboard.GetText( TextDataFormat.Html );
        Clipboard.Clear();
        Clipboard.SetText( html, TextDataFormat.Html );

        var text2 = Clipboard.GetText();
        Console.WriteLine();
        Console.WriteLine( "--->The clipboard as Text:" );
        Console.WriteLine( text2 );

        var isSameText = ( text == text2 );
        Console.WriteLine();
        Console.WriteLine( isSameText ? "Success" : "Failure" );

        Console.WriteLine();
        Console.WriteLine( "Press enter to exit." );
        Console.ReadLine();
    }
}
È stato utile?

Soluzione

Quando copi i dati da un browser negli Appunti, li mette negli Appunti in più formati, inclusi testo e HTML. In questo modo è possibile leggere nuovamente i dati in formato testo o HTML. Tuttavia, quando chiami SetText qui, passi SOLO in formato HTML, quindi quando usi il normale GetText, negli Appunti non esiste una versione di testo e ricevi null indietro.

Puoi inserire più formati negli appunti contemporaneamente (cioè, sia testo che HTML) usando IDataObject, ma devi fare tu stesso la traduzione tra formati prima di inserire i dati negli appunti. C'è un esempio di come usare IDataObject qui .

Altri suggerimenti

Posso riprodurre che non funziona ... il var text2 = Clipboard.GetText (); restituisce " " ogni volta ...

(modifica) Una rapida ricerca produce questo , che sembra sull'argomento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top