Сделать WPF контроль над веб-браузером - PullRequest
6 голосов
/ 09 февраля 2012

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

Есть ли способ показать мой пользовательский контроль над веб-браузером?

Ответы [ 3 ]

3 голосов
/ 09 февраля 2012

Пожалуйста, ответьте мне сначала,

Этот веб-браузер управляет WPF Web Browser Control или Winform веб-браузером, размещенным в WinFormHost?

Чтобы какой-либо элемент управления WPF отображал анимацию поверх него, вы исследовали ...

  1. Поместить свой элемент управления в Grid или Canvas, а затем поместить растянутый Border (с анимацией в нем) в качестве последнего потомка сетки / холста?
  2. Adorner с постоянно меняющимся контекстом рисования для имитации анимации?
  3. Прозрачный Popup с анимацией, статическое размещение которого (привязано к абсолютному левому, верхним позициям и фактическим свойствам высоты и ширины) над элементом управления?

Попробуйте прозрачный всплывающий подход для управления веб-браузером ...

    <Grid>
        <WebBrowser x:Name="WebBrowser1"/> 
        <Popup IsOpen="{Binding StartAninmation}"
              AllowsTransparency="True"
              Grid.RowSpan="99"
              Grid.ColumnSpan="99"
              Placement="Center"
              Width="{Binding ActualWidth,
                              ElementName=WebBrowser1,
                              Mode=OneWay}"
              Height="{Binding ActualHeight, 
                               ElementName=WebBrowser1,
                               Mode=OneWay}"
              PlacementTarget="{Binding ElementName=WebBrowser1}"
              Opacity="0.5"
              Margin="3">
           <TextBlock Text="Loading ..."/>
       </Popup>
 </Grid>

Один из них наверняка сработает в вашем случае.

2 голосов
/ 09 февраля 2012

К сожалению, это невозможно с WPF Webbrowser Control (который по сути является обернутым WinForms WebBrowser) из-за порядка, в котором ОС отображает WinForms и WPF-контент.

Смотрите также: Есть ли способ визуализации элементов управления WPF поверх элемента управления wpf WebBrowser?

Существует стороннее приложение Awsomium , которое должно сделать это возможным.

Редактировать: Другой возможностью будет визуализация безрамного окна над элементом управления WebBrowser. Но немного сложно удержать его в правильном положении / z-порядке.

1 голос
/ 19 марта 2012

CefSharp обеспечивает чистый браузер WPF, основанный на Chromium / V8, который не подвержен проблемам воздушного пространства элемента управления Microsoft WebBrowser (отказ от ответственности: я являюсь сопровождающим CefSharp).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...