لا يمكن مستديرة الشكل رحلة أتش تي أم أل إلى الحافظة

StackOverflow https://stackoverflow.com/questions/346957

  •  19-08-2019
  •  | 
  •  

سؤال

وأريد أن أكتب بتنسيق 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();
    }
}
هل كانت مفيدة؟

المحلول

عند نسخ البيانات من متصفح إلى الحافظة، فإنه يضع نفسه على بيانات الحافظة في أشكال متعددة، بما في ذلك كل من النص وHTML. حتى تتمكن من قراءة البيانات مرة أخرى في أي نص أو شكل HTML. ومع ذلك، عند استدعاء SetText هنا، يتم تمرير فقط في شكل HTML، وذلك عند استخدام GetText منتظم، لا يوجد إصدار نص في الحافظة وتحصل على باطل الظهر.

ويمكنك وضع صيغ متعددة إلى الحافظة في وقت واحد (أي كل من النص وHTML) باستخدام IDataObject، ولكن عليك أن تفعل الترجمة بين صيغ نفسك قبل وضع البيانات في الحافظة. هناك مثال على كيفية استخدام IDataObject هنا .

نصائح أخرى

وأنا يمكن أن تتكاثر أنه لا يعمل ... يعود var text2 = Clipboard.GetText(); "" في كل مرة ...

و(تحرير) A عوائد البحث السريع هذا ، والذي يبدو على الموضوع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top