Can not round trip html format to clipboard
我想写HTML格式,但我甚至不能用一个简单的msdn示例。
http://msdn.microsoft.com/en-us/library/tbfb3z56.aspx
这个控制台应用程序,一个剪贴板往返程序,对任何人都有效吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 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(); } } |
将数据从浏览器复制到剪贴板时,它会将相同的数据以多种格式(包括文本和HTML)放入剪贴板。所以您可以以文本或HTML格式读取数据。但是,当您在这里调用settext时,您只传递HTML格式,所以当您使用常规的getext时,剪贴板上没有文本版本,您将得到空值。
您可以使用IDataObject一次将多个格式(即文本和HTML)放入剪贴板,但在将数据放入剪贴板之前,您必须自己进行格式之间的转换。这里有一个如何使用IDataObject的示例。
我可以复制它不起作用…
(编辑)快速搜索会产生这个问题,这似乎是在讨论这个话题。