2016-08-17 2 views
0

私はhttps://bitbucket.org/xilium/xilium.cefglue/downloadsで利用可能なCEFGlueサンプルの中の "CefGlue.Samples.WpfOsr"を参照し、プラグインアセンブリで同じものを統合しようとしています。今まで何をしていても、ブラウザコントロールはプラグインとして実行するとビュー内でレンダリングされません。ただし、これはスタンドアロンモードで実行すると正常に動作します。誰かに行く方法をアドバイスできますか?プラグイン環境でCEFGlueがレンダリングされない

+0

プラグインとはどういう意味ですか? Program.csをチェックする - 初期化コードが含まれています。 – fddima

答えて

0

なぜコントロールが表示されないのかという根本的な原因がわかりました。 CEFGlueコードベースのどこかに次の行があります。これは、親ウィンドウのハンドルとCEFBrowserコントロールのUIのレンダリングを行うために、「Window」タイプを探してビジュアルツリーをずっと探します。

Window parentWnd = FindParentOfType<Window>(this); 

private static T FindParentOfType<T>(DependencyObject obj) where T : DependencyObject 
     { 
      DependencyObject parentObj = VisualTreeHelper.GetParent(obj); 
      if (parentObj == null) 
       return null; 

      // Try to type cast the parent to the desired type. 
      // If the cast succeeds, we've found the desired parent. 
      T parent = parentObj as T; 
      if (parent != null) 
       return parent; 

      // If we get here, the current parent wasn't of the right type, so keep looking recursively 
      return FindParentOfType<T>(parentObj); 
     } 

が原因で私が持っているプラ​​グインの環境であってもよく、このビジュアルツリーはNULLハンドルをその結果、親ウィンドウのようなものを持っていませんでした。だから私の場合の解決策は、親プロセスのメインウィンドウハンドルを見つけてCEFに渡すことでした。それが似たような状況で助けてくれることを願っています。

関連する問題