如何在 WPF 中完全将焦点设置在 WebBrowser 对象上
How to completely set focus on a WebBrowser object in WPF
我有一个基本的 class,里面有一个 WebBrowser:
<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>
现在出现的问题是全屏视图不是 "focused"。 .Focus()
确实启用键盘焦点,但不是 complete 激活。最终发生的是屏幕顶部和左侧有一个灰色边框。单击将其删除并让我完全专注。
你可以在上图中看到它,2 像素宽的灰色边框。
有什么我可以改进的吗?整个项目在 github 上,您可以从发行版下载 .exe
到 运行。不过,它需要一个 Spotify 帐户才能工作,因此希望它具有足够的可重现性。
它实际上是一个 HTML/CSS 修复,与 c# 或 wpf 无关。
需要做的两件事是:
将 frameborder = "0"
添加到 iFrame
执行以下CSSiframe:focus{ outline: none; }
一旦它们就位,您就可以创建一个无缝的 YouTube 嵌入。
我有一个基本的 class,里面有一个 WebBrowser:
<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>
现在出现的问题是全屏视图不是 "focused"。 .Focus()
确实启用键盘焦点,但不是 complete 激活。最终发生的是屏幕顶部和左侧有一个灰色边框。单击将其删除并让我完全专注。
你可以在上图中看到它,2 像素宽的灰色边框。
有什么我可以改进的吗?整个项目在 github 上,您可以从发行版下载 .exe
到 运行。不过,它需要一个 Spotify 帐户才能工作,因此希望它具有足够的可重现性。
它实际上是一个 HTML/CSS 修复,与 c# 或 wpf 无关。
需要做的两件事是:
将
frameborder = "0"
添加到 iFrame执行以下CSS
iframe:focus{ outline: none; }
一旦它们就位,您就可以创建一个无缝的 YouTube 嵌入。