当视频进入全屏模式时,它将覆盖WebView控件表面并引发一个事件,让您知道全屏模式已更改,然后由您决定要做什么。如果您有一个WebVeiw设置为 Dock = Fill 的控件来填充表单,那么您就足以在视频进入全屏模式时处理该事件,然后使表单全屏显示。
正如其他答案中也提到的那样,当页面中 HTML 元素的全屏状态发生更改时,将引发CoreWebView2.ContainsFullScreenElementChanged 。您可以处理该事件,然后检查CoreWebView2.ContainsFullScreenElement属性,该属性指示 WebView2 是否包含全屏 HTML 元素,并根据该属性更改表单大小/模式。
例子
在此示例中,我FullScreen向表单添加了一个属性,并处理了ContainsFullScreenElement表单中的全屏模式和正常模式之间的切换。
要使其正常工作,请确保WebView表单上有一个控件并将其设置Dock为Fill,然后Load像这样处理表单的事件:
private async void Form1_Load(object sender, EventArgs e)
{
webView21.Source = new Uri("https://youtube.com");
await webView21.EnsureCoreWebView2Async();
webView21.CoreWebView2.ContainsFullScreenElementChanged += (obj, args) =>
{
this.FullScreen = webView21.CoreWebView2.ContainsFullScreenElement;
};
}
private bool fullScreen = false;
[DefaultValue(false)]
public bool FullScreen
{
get { return fullScreen; }
set
{
fullScreen = value;
if (value)
{
this.WindowState = FormWindowState.Normal;
FormBorderStyle = FormBorderStyle.None;
WindowState = FormWindowState.Maximized;
}
else
{
this.Activate();
this.FormBorderStyle = FormBorderStyle.Sizable;
this.WindowState = FormWindowState.Normal;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4248 次 |
| 最近记录: |