2012-04-12 76 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(); 
}