Пример CefSharp WebBrowser в WPF (прозрачность)

Я работаю с WPF и С# (используя Visual Studio 2013) и хочу разработать приложение с прозрачным фоном и веб-браузером. Я понимаю, что это проблема веб-браузера по умолчанию... но я хочу найти другое решение. Я нашел другие компоненты веб-браузера, такие как CefSharp, основанные на хроме. Я хотел бы знать, возможно ли использование прозрачного фона с помощью браузера CefSharp, и я хотел бы, чтобы кто-нибудь объяснил мне шаг за шагом, как реализовать очень простой веб-браузер (я нашел какую-то статью, но я не смог реализовать рабочий заявление). Если вы считаете, что есть другие лучшие компоненты, пожалуйста, предложите мне и объясните, как заставить их работать. Спасибо за внимание и за ответы.


person userSimo    schedule 14.11.2014    source источник
comment
Что вы имеете в виду под прозрачным фоном? Страница, загруженная в браузер, имеет цвет фона, по крайней мере, белый, если цвет не определен. Вы пытаетесь удалить фон отображаемых страниц, чтобы показать свой собственный фон?   -  person rkawano    schedule 14.11.2014


Ответы (1)


Это просто быстрое доказательство концептуального хака, основанного на CefSharp.Wpf.Example, чтобы увидеть, выполнимо ли это. В зависимости от того, что вы хотите, я думаю, что можно сделать (некоторые) веб-страницы прозрачными.

На картинке ниже вы видите CefSharp.Wpf.Example поверх Visual Studio. Также есть частичное окно DevTools от CefSharp впереди в левом нижнем углу.

Вот что я сделал (см. рисунок ниже):

  1. Добавьте WindowState="Normal" Opacity=".75" AllowsTransparency="True" WindowStyle="None" MinHeight="400" MinWidth="600" к элементу <Window> элемента MainWindow.Xaml.
  2. Добавьте вызов где-нибудь, когда браузер инициализируется своим методом ShowDevTools().
  3. Затем я использовал DevTools, чтобы установить альфа-фон <body>s на ноль на загруженной странице.

В зависимости от того, что вам нужно, вам придется поэкспериментировать со значениями непрозрачности WPF самостоятельно. Кроме того, в зависимости от веб-страницы, которую вам нужно отобразить, удаление фактического цвета фона на разных элементах может потребовать некоторой настройки. Как вы можете видеть из приведенного выше примера, достаточно было установить одно значение, чтобы удалить белый фон на странице поиска Google. Вы можете использовать метод ExecuteJavascriptAsync(), упомянутый на вики-странице часто задаваемых вопросов CefSharp, для внедрения JavaScript на страницы, на которые вы переходите.

Да, это возможно с CefSharp

person jornh    schedule 22.11.2014
comment
Спасибо за помощь =) - person userSimo; 24.11.2014