2017-05-10 20 views
0

私はUWPプロジェクトで作業していますが、不透明度= 0.01fのWebViewをロードし、WebView_LoadCompletedが呼び出されたときに不透明度を1.0fに設定します。それまではプレビュー画像で表示されます。しかし、私がそれを見せているとき、20の場合1のように白く点滅し、同じWebViewのコンテンツをテストしています。WebViewレンダリングのちらつきが

  Grid grid = new Grid(); 
      //set previewImage as preview of grid content 
      Image backgroundImage = new Image(); 
      backgroundImage.Source = new BitmapImage(new Uri(@"ms-appdata:///local/" + "some path")); 
      grid.Children.Add(backgroundImage); 
      grid.SetValue(Grid.RowProperty, slide.Pos.Y); 
      grid.SetValue(Grid.ColumnProperty, slide.Pos.X); 
      MainGrid.Children.Add(grid); 

      WebView webView = new WebView(); 
      webView.NavigationStarting += WebView_NavigationStarting; 
      webView.LoadCompleted += WebView_LoadCompleted; 
      webView.ScriptNotify += WebView_ScriptNotify; 
      webView.Opacity = 0.01f; 
      Uri navigationUri = "some local file Uri"); 
      webView.NavigateToLocalStreamUri(navigationUri, myResolver); // myResolver checks if source is allowed to load 
      webView.Width = 1024; 
      webView.Height = 768; 
      Viewbox viewBox = new Viewbox(); 
      viewBox.Stretch = Stretch.Uniform; 
      viewBox.Child = webView; 
      grid.Children.Add(viewBox); 

そして、私のWebView_LoadCompletedは、次のようになります: 私のコードは次のようになります

private void WebView_LoadCompleted(object sender, NavigationEventArgs e) 
    { 
     WebView webView = (WebView)sender; 
     webView.Opacity = 1.0f; 
    } 

私はそれが表示されているので、WebViewのが唯一の低opicityで(すぐにそのlaodedコンテンツをレンダリングすることを期待していました)をViewBoxに入れ、ほとんどの場合、ちらつきはしませんが、それでも表示されます。

WebView_LoadCompletedの後にコールを受けようとしましたが、WebViewとViewBoxのx_LayoutUpdated、x_SizeChangedなどの呼び出しを試しましたが、WebView_LoadCompletedは最後にコールされたブレークポイントの関数です。

WebView.DefaultBackgroundColorを透明に設定しても機能しませんでしたが、まだ白くちらつきます。 WebViewをイメージの下に配置し、レイアウト時間の遅延の後で前面に表示されませんでした。

ありがとうございました!それは有り難いです!

+0

を 'ViewBox'は、あなたの' WebView'のコンテナタイプを変更してみてください。 –

+0

こんにちは、私はそれを見て、しかし、あなたの提案を検証するものを見ることができませんでしたが、私はこの質問を見つけました: http://stackoverflow.com/questions/34340134/how-to-know-when-a-frameworkelement -has-been-totally-rendered WPF関数 "ContentRendered"のUWPで同様のコールバックを探している人がいました。これは、ライフサイクルの最終呼び出しがプレゼンテーション/レンダリング。 –

答えて

1

webviewがすべての読み込みとレンダリングのプロセスを完了したことを検証する適切な方法がないようです。 しかし、あなたは他のUIElementのために別の質問の答えは、この使用することができます。私はここに問題があると思い

Answer

関連する問題