2009-10-06 3 views
3

может дать кому-то мне подсказку, как отображать «элементы управления наложением» в элементе управления WebBrowser в моем приложении WPF? Я бы хотел отобразить навигационную графику в качестве наложения, чтобы пользователь мог выбрать функцию, а элементы управления навигации исчезли после ее выбора.Оверлей для управления WebBrowser в приложении WPF?

на данный момент на самом деле не имеет опыта работы с WPF. :(я понятия не имею, с чего начать. Любой намек или ссылка были бы замечательными. спасибо

ответ

4

Будут проблемы с этим. Есть проблемы с «воздушным пространством» с контролем браузера WPF. В основном это означает, что вы ничего не может поставить поверх управления браузером.

work around, чтобы положить свои наложенные управления в элементе управления всплывающим.

+0

thx много. выглядит очень многообещающим. никогда не слышал о проблеме «воздушного пространства». но хорошо видеть, что его можно легко решить. и это удивительно, как быстро вы ответили на мой вопрос. впечатляет. :) – pantarhei

+1

Почему я не могу сделать опубликованную «работу» с Карлом? К сожалению, я не могу спросить оригинального блогера Карла. Ссылка для загрузки исходного кода сломана, но я думал, что получил точный XAML (кроме удаленной команды для кнопок). Может ли кто-нибудь опубликовать рабочую копию? – newman

0

Существует wpf based browser, который использует Chromium. это позволит вам относиться к нему как любой другой объект wpf, а не элемент управления браузером activex.

+0

thx для этой информации. я тоже посмотрю на это. но на данный момент работа вокруг выше выглядит достаточно хорошо. – pantarhei

0

Я нашел путь мимо есть, хотя это немного взломать. По существу, вы создаете свои элементы управления как элементы управления WinForm и используете WindowsFormsHost для их размещения.

WindowsFormsHost будет сидеть поверх элемента управления веб-браузера.

Как я уже сказал, не идеален, но будет работать, если вы в отчаянии.

0

Непросто пройти через воздушное пространство управления веб-браузером WPF. Однако при отображении анимации вы можете свести к минимуму высоту управления веб-браузером и снова установить высоту, когда ваша задача закончена.

Лучшим обходным решением этой проблемы является обработка высоты браузера. Найдите простой сценарий ниже.

Предположим, у вас есть контроль веб-браузера в Mainwindow. Когда вы выполняете какое-либо действие, например: нажмите кнопку, у вас есть другой пользовательский элемент управления, который выходит за пределы MainWindow. Однако из-за проблемы Airspace веб-браузер не сидит в своем родительском элементе управления и не входит в ваш контроль.

ИСПРАВЛЕНИЕ: стандартное исправление - вы можете установить высоту веб-браузера на ноль, когда вы запускаете какой-либо другой контроль над ним, зависит от вашего сценария. Ниже приведен пример реализации.

В MainWindow.Xaml включены события.

Activated="Window_Activated" 
Deactivated="Window_Deactivated" 

В Xaml.cs обрабатывается сценарий, задавая высоту.

private void Window_Activated(object sender, EventArgs e) 
{ 
    wb.Height = double.NaN; 
} 

private void Window_Deactivated(object sender, EventArgs e) 
{ 
    wb.Height = 0; 
} 
Смежные вопросы