2

「LoadCompleted」イベントを使用しました。基本的に、イベントを受信したら、画面のスクリーンショットを撮る必要があります(作成したもの)。問題は、このイベントが発生すると、スクリーンショットが空白になり (ページがまだ読み込まれていない)、5 ~ 10 秒の遅延を置いた場合にのみ、スクリーンショットが機能することです。

Web ページが完全にレンダリングされるタイミングをどのように判断できますか? すべての側面がロードされていることなど

4

1 に答える 1

0

問題は、ページがロードされた直後に LoadCompleted イベントが呼び出されることですが、ページがレンダリングされる前です。レンダリングがいつ終了したかを正確に知る方法はわかりませんが、Dispatcher を使用して、レンダリングが発生した後にコードが実行されるようにすることができます。

private void Browser_LoadCompleted(object sender, NavigationEventArgs e)
{
    Dispatcher.Invoke(TakeScreenshot, System.Windows.Threading.DispatcherPriority.Background);
}

private void TakeScreenshot()
{
    //insert your screenshot code here
}

優先度レベルを少し試してみる必要があるかもしれませんが、Background がうまく機能しているようです。

于 2013-01-16T21:50:44.160 に答える