WPF WebBrowser в TabItem не отображается

Я использую WPF, и мне нужно заполнить динамически сгенерированный TabControl рядом вкладок.

У меня проблемы с элементом WebBrowser, который, похоже, успешно перемещается (я вижу, что курсор мыши меняет курсор, когда я нахожу курсор на разные элементы), но браузер отображает только белый цвет.

Мой код ниже:

WebBrowser browser = new WebBrowser();
TabItem aTabItem = new TabItem() { Header = "My Tab", Width = 180, FontSize = 16, Content = (browser as WebBrowser) };

(Form.FindName("MyTabControl") as TabControl).Items.Add(aTabItem);
(Form.FindName("MyTabControl") as TabControl).SelectedItem = aTabItem;

browser.NavigateToString("http://www.google.com");

Итак, в основном я создаю TabItem, добавляю к нему WebBrowser, добавляю TabItem в TabControl, который будет содержать все созданные вкладки.

Когда я пытаюсь это сделать, WebBrowser не отображается. Если я заменю его меткой с некоторым текстом, метка с радостью появится.

Не могли бы вы дать мне несколько советов? Спасибо


person Rafael Ventura    schedule 19.06.2017    source источник
comment
Некоторое время назад у меня была похожая проблема, не идентичная, но я где-то нашел помощника, который сказал, что сначала вызов browser.Navigate("about:blank");, а затем основная навигация помогли.   -  person Dan Gardner    schedule 19.06.2017
comment
Стоит быстро попробовать, если можете. Позвольте мне знать, что происходит   -  person Dan Gardner    schedule 19.06.2017
comment
Пробовал ваш подход, казался правдоподобным, потому что WebBrowser кажется элементом ActiveX, а не встроенным в WPF, поэтому, возможно, потребовался удар для правильной работы. К сожалению, это все еще не работает.   -  person Rafael Ventura    schedule 20.06.2017
comment
Я еще больше сбит с толку, потому что я пробовал очень похожий подход дома и работал хорошо, мне пришлось дать браузеру width и height для его отображения, но попытка этого на работе по-прежнему не отображала браузер.   -  person Rafael Ventura    schedule 20.06.2017
comment
К сожалению, у меня нет времени на какие-либо исследования, хотя я посмотрю позже. Если это не работает в вашей рабочей среде, но есть у вас дома, может ли это быть что-то столь же простое, как брандмауэр, блокирующий доступ к вашему приложению?   -  person Dan Gardner    schedule 20.06.2017
comment
Я обнаружил проблему, у меня был браузер в окне, которое позволяло прозрачность.   -  person Rafael Ventura    schedule 21.06.2017


Ответы (2)


Это работает для меня,

        WebBrowser browser = new WebBrowser();
        TabItem TI = new TabItem() { Header = "My Tab", Width = 180, FontSize = 16, Content = (browser as WebBrowser) };
        tabcontrol.Items.Add(TI);            
        browser.Source= new Uri("http://www.google.com"); 

Я использовал Source управления WebBrowser. и я создаю Uri.

NavigateToString(string text) работает, как показано ниже, из MSDN

If the text parameter is null, WebBrowser navigates to a blank document ("about:blank").
If the text parameter is not in valid HTML format, it will be displayed as plain text.
After navigation, Source will be null.
person Abin    schedule 19.06.2017
comment
Я пробовал исходный код, но браузер все еще не отображается. В отдельном проекте я заметил, что браузеру нужны width и height, но в моем основном проекте, который по-прежнему не помогает отображать браузер. - person Rafael Ventura; 20.06.2017

Нашел проблему. Окно, в котором у меня был WebBrowser, было установлено как AllowsTransparency="true". Я должен был знать лучше...

person Rafael Ventura    schedule 21.06.2017
comment
иногда это самые простые вещи! - person Dan Gardner; 27.06.2017