Я ссылаюсь на «CefGlue.Samples.WpfOsr» внутри образцов CEFGlue, доступных в https://bitbucket.org/xilium/xilium.cefglue/downloads, и пытается интегрировать их в сборку. Независимо от того, что когда-либо я делаю, элемент управления браузером не получает renderd в представлении при запуске в качестве подключаемого модуля. Однако это отлично работает при работе в автономном режиме. Может ли кто-нибудь посоветовать, как это сделать?CEFGlue в плагине enviornment not rendering
0
A
ответ
0
Итак, я нашел причину, по которой элемент управления не показывался. Где-то в базе кода CEFGlue была строка, которая заставляет его пересекать визуальное дерево, ища тип «Окно», чтобы получить его родительский дескриптор окна и отобразить пользовательский интерфейс управления CEFBrowser.
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);
}
Может быть из-за плагина enviornment у меня есть, это визуальное дерево не было такого рода родительского окна, в результате чего нулевой дескриптор. Поэтому решение в моем случае состояло в том, чтобы найти главный дескриптор основного процесса родительского процесса и передать его в CEF. Надеюсь, это может помочь кому-то с подобными ситуациями.
Что вы подразумеваете под плагином? Проверьте Program.cs - он содержит некоторый код инициализации. – fddima