Как полностью установить фокус на объекте WebBrowser в WPF - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть базовый c класс с веб-браузером в нем:

<Window x:Class="X.Y"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="X- Music Video"
    WindowState="Maximized"
    WindowStyle="None">

    <WebBrowser x:Name="webBrowser1" KeyDown="Window_KeyDown" Focusable="True"/>

</Window>

Затем, когда я пытаюсь перейти к нему, он работает, открывая видео YouTube в полноэкранном режиме:

this.webBrowser1.NavigateToString(<html with youtube embedded>);
this.webBrowser1.Focus();

Пример html:

<html>    <head>        <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>        <style type="text/css">body, html{margin: 0; padding: 0; height: 100%; overflow: hidden;}#content{position: absolute; left: 0; right: 0; bottom: 0; top: 0px;}</style>     </head>    <body>        <div id="content">            <iframe width="100%" height="100%" src="https://www.youtube.com/embed/QDfKzB2T0i4?autoplay=1&start=3"                </iframe>        </div>    </body></html>

Проблема вступает в игру, когда полноэкранный режим теперь не «сфокусирован». .Focus() включает фокусировку клавиатуры, но не complete активация. В итоге происходит серая рамка в верхней и левой частях экрана. При нажатии удаляет его и дает мне полный фокус, хотя. серая рамка.

Что я могу сделать, чтобы улучшить это? Весь проект находится на github, и вы можете загрузить .exe, чтобы запустить его из релизов. Для работы требуется учетная запись Spotify, так что, надеюсь, это достаточно воспроизводимо.

1 Ответ

0 голосов
/ 19 февраля 2020

На самом деле это было исправление HTML / CSS, вместо того, чтобы что-то делать с c# или wpf.

Необходимо сделать две вещи:

  • Добавьте frameborder = "0" к iFrame

  • Реализуйте следующее CSS iframe:focus{ outline: none; }

Как только они на месте , вы можете создать бесшовную вставку YouTube.

...