2012-04-12 59 views
1

我正在開發一個可重用的UserControl,其他功能應提供全屏模式。使用戶控件全屏

但是如何做到這一點?

通常情況下,容器窗體應該最大化,而不是UserControl。

有什麼辦法強制UserControl臨時佔用整個屏幕?

我明白這不是通常應該做的事情,但我有理由這樣做。

回答

3

暫時將控件移動到一個新的無邊框窗體並將該窗體全屏顯示。

+0

通常,這可能是一個合適的解決方案,但它需要重新初始化某些事情,這在我的情況下幾乎不可接受。我希望能夠通過Windows API「全屏顯示」實際的UserControl。例如,當您切換全屏模式時,託管在網頁中的YouTube播放器就會執行此操作。 – SharpAffair 2012-04-12 16:48:40

2

您可以在usercontrol中創建一個臨時窗口來提供全屏。

+0

+1,請勿修改當前容器,重新制作一個容器。 – Servy 2012-04-12 16:57:17

3

您應該能夠通過將控件從容器中移除來重新使用該控件,然後創建一個全屏無邊框窗體。

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(); 
}