我正在开发一个可重用的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