wpf 实现全屏与取消全屏

时间:2021-10-05 10:05:39

/// <summary>
/// 全屏
/// </summary>
public void ToFullscreen()
{

//存储窗体信息
m_WindowState = this.WindowState;
m_WindowStyle = this.WindowStyle;
m_WindowTopMost = this.Topmost;
m_WindowResizeMode = this.ResizeMode;
m_WindowRect.X = this.Left;
m_WindowRect.Y = this.Top;
m_WindowRect.Width = this.Width;
m_WindowRect.Height = this.Height;

//变成无边窗体
this.WindowState = WindowState.Normal;//假如已经是Maximized,就不能进入全屏,所以这里先调整状态
this.WindowStyle = WindowStyle.None;
this.ResizeMode = ResizeMode.NoResize;
this.Topmost = true;//最大化后总是在最上面

// 调整窗口最大化。
this.Width = m_DisplayBounds.width;
this.Height = m_DisplayBounds.height;
this.WindowState = WindowState.Maximized;

}

/// <summary>
/// 取消全屏
/// </summary>
public void ExitFullscreen()
{

//恢复窗口先前信息,这样就退出了全屏
this.Topmost = m_WindowTopMost;
this.WindowStyle = m_WindowStyle;

this.ResizeMode = ResizeMode.CanResize;//设置为可调整窗体大小
this.Left = m_WindowRect.Left;
this.Width = m_WindowRect.Width;
this.Top = m_WindowRect.Top;
this.Height = m_WindowRect.Height;
this.WindowState = m_WindowState;//恢复窗口状态信息
this.ResizeMode = m_WindowResizeMode;//恢复窗口可调整信息

}