我正在開發一個可重用的UserControl,其他功能應提供全屏模式。使用戶控件全屏
但是如何做到這一點?
通常情況下,容器窗體應該最大化,而不是UserControl。
有什麼辦法強制UserControl臨時佔用整個屏幕?
我明白這不是通常應該做的事情,但我有理由這樣做。
我正在開發一個可重用的UserControl,其他功能應提供全屏模式。使用戶控件全屏
但是如何做到這一點?
通常情況下,容器窗體應該最大化,而不是UserControl。
有什麼辦法強制UserControl臨時佔用整個屏幕?
我明白這不是通常應該做的事情,但我有理由這樣做。
暫時將控件移動到一個新的無邊框窗體並將該窗體全屏顯示。
您應該能夠通過將控件從容器中移除來重新使用該控件,然後創建一個全屏無邊框窗體。
private void OnGoFullScreenMode()
{
this.Controls.Remove(goLiveControl);
this.ShowFullScreen(goLiveControl);
}
private void ShowFullScreen(UserControl userControl)
{
Form fullScreenForm = new Form();
fullScreenForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
fullScreenForm.WindowState = FormWindowState.Maximized;
fullScreenForm.ShowInTaskbar = false;
userControl.Dock = DockStyle.Fill;
fullScreenForm.Controls.Add(userControl);
fullScreenForm.Show();
}
通常,這可能是一個合適的解決方案,但它需要重新初始化某些事情,這在我的情況下幾乎不可接受。我希望能夠通過Windows API「全屏顯示」實際的UserControl。例如,當您切換全屏模式時,託管在網頁中的YouTube播放器就會執行此操作。 – SharpAffair 2012-04-12 16:48:40