2016-09-09 32 views
0

私はMinimalexample.Offscreenの例をダウンロードしました これはスクリーンショットに使用していますが、フルページを取得していません。画像は私がCefSharpオフスクリーンまたはCefsharpのWinFormsとの完全な長いページのスクリーンショットを取得することができます(のみ表示ページのスクリーンショットが取られる)CefsharpのフルページスクリーンショットC#

// c# code 
var scriptTask = browser.EvaluateScriptAsync("document.getElementById('lst-ib').value = 'CefSharp Was Here!'"); 
     scriptTask.ContinueWith(t => 
       { 
        Thread.Sleep(500); 
        var task = browser.ScreenshotAsync(); 
        task.ContinueWith(x => 
        { 
         var screenshotPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "CefSharp screenshot.png"); 

         Console.WriteLine(); 
         Console.WriteLine("Screenshot ready. Saving to {0}", screenshotPath); 
         task.Result.Save(screenshotPath); 
         task.Result.Dispose(); 
         Console.WriteLine("Screenshot saved. Launching your default image viewer...");      
         Process.Start(screenshotPath); 
         Console.WriteLine("Image viewer launched. Press any key to exit.");    
        }, TaskScheduler.Default); 
        }).Wait(); 

どのようにトリミングされますか?

+0

なぜ 'async/await'を使用しないのですか?タスクを持っていて、 'async/await'(ヒント)ではない.NETバージョンはサポートされていません。これはあなたのコードをよりきれいにし、欠落した 'Dispose'呼び出しのために漏れを避けるでしょう。 [このディスカッションでは](https://github.com/cefsharp/CefSharp/issues/957)あなたのページが完全にロードされていない可能性があるので、 'ScreenshotAsync'は最初のフレームをキャプチャしただけです –

+0

デモコードの例がありますか?スクリーンショットのための他の機能はありません。screenshotasyncは利用可能です – skhurams

+0

私のコードを更新して待ちましたが、まだ同じ問題が発生しました。 – skhurams

答えて

1

ページが読み込まれるまでに0.5秒しか待機していない可能性があります。 Google Chromeにロードするのにかかる時間を確認してください。 3秒間これを追加してください

Thread.Sleep(3000); 

PS:あなたの質問に「答える」の理由があるとは言い難いです。

+0

私はcefsharp gitterに連絡しました。彼らは私にフルページのsceenshotがまだ実装されていないと教えてくれました。 – skhurams

関連する問題