我想写Html格式,但我甚至无法得到一个简单的MSDN示例 .
http://msdn.microsoft.com/en-us/library/tbfb3z56.aspx
这个控制台应用程序,一个剪贴板往返者,适合任何人吗?
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();
}
}
2 回答
将数据从浏览器复制到剪贴板时,它会以多种格式将相同的数据放入剪贴板,包括文本和HTML . 因此,您可以以文本或HTML格式读取数据 . 但是,当您在此处调用SetText时,您只能传递HTML格式,因此当您使用常规GetText时,剪贴板上没有文本版本,您将返回null .
您可以使用IDataObject将多种格式一次放入剪贴板(即文本和HTML),但在将数据放入剪贴板之前,您必须自己进行格式之间的转换 . 有一个如何使用IDataObject here的示例 .
我可以重现它不起作用...
var text2 = Clipboard.GetText();
每次返回""
...(编辑)快速搜索产生this,这似乎是主题 .