zoukankan      html  css  js  c++  java
  • WPF全屏 no

    全屏代码:

           #region 设置全屏
    this.WindowState = System.Windows.WindowState.Normal;
    this.WindowStyle = System.Windows.WindowStyle.None;
    this.ResizeMode = System.Windows.ResizeMode.NoResize;
    this.Topmost = true;
    this.Left = 0.0;
    this.Top = 0.0;
    this.Width = System.Windows.SystemParameters.PrimaryScreenWidth;
    this.Height = System.Windows.SystemParameters.PrimaryScreenHeight;
         #endregion

     扩展类:

    项目先引用下面dll:

    1:System.Windows.Forms;
    2:System.Drawing;

    public static class ExpendMethod
    {
    private static Window _fullWindow;
    private static WindowState _windowState;
    private static WindowStyle _windowStyle;
    private static bool _windowTopMost;
    private static ResizeMode _windowResizeMode;
    private static Rect _windowRect;

    /// <summary>
    /// 进入全屏
    /// </summary>
    /// <param name="window"></param>
    public static void GoFullscreen(this Window window)
    {
    //已经是全屏
    if (window.IsFullscreen()) return;

    //存储窗体信息
    _windowState = window.WindowState;
    _windowStyle = window.WindowStyle;
    _windowTopMost = window.Topmost;
    _windowResizeMode = window.ResizeMode;
    _windowRect.X = window.Left;
    _windowRect.Y = window.Top;
    _windowRect.Width = window.Width;
    _windowRect.Height = window.Height;


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

    //获取窗口句柄
    var handle = new WindowInteropHelper(window).Handle;
    //获取当前显示器屏幕
    Screen screen = Screen.FromHandle(handle);

    //调整窗口最大化,全屏的关键代码就是下面3句
    window.MaxWidth = screen.Bounds.Width;
    window.MaxHeight = screen.Bounds.Height;
    window.WindowState = WindowState.Maximized;

    //解决切换应用程序的问题
    window.Activated += new EventHandler(window_Activated);
    window.Deactivated += new EventHandler(window_Deactivated);
    //记住成功最大化的窗体
    _fullWindow = window;
    }

    static void window_Deactivated(object sender, EventArgs e)
    {
    var window = sender as Window;
    window.Topmost = false;
    }
    static void window_Activated(object sender, EventArgs e)
    {
    var window = sender as Window;
    window.Topmost = true;
    }

    /// <summary>
    /// 退出全屏
    /// </summary>
    /// <param name="window"></param>
    public static void ExitFullscreen(this Window window)
    {
    //已经不是全屏无操作
    if (!window.IsFullscreen()) return;
    //恢复窗口先前信息,这样就退出了全屏
    window.Topmost = _windowTopMost;
    window.WindowStyle = _windowStyle;
    window.ResizeMode = ResizeMode.CanResize;//设置为可调整窗体大小
    window.Left = _windowRect.Left;
    window.Width = _windowRect.Width;
    window.Top = _windowRect.Top;
    window.Height = _windowRect.Height;
    window.WindowState = _windowState;//恢复窗口状态信息
    window.ResizeMode = _windowResizeMode;//恢复窗口可调整信息
    //移除不需要的事件
    window.Activated -= window_Activated;
    window.Deactivated -= window_Deactivated;
    _fullWindow = null;
    }

    /// <summary>
    /// 窗体是否在全屏状态
    /// </summary>
    /// <param name="window"></param>
    /// <returns></returns>
    public static bool IsFullscreen(this Window window)
    {
    if (window == null)
    throw new ArgumentNullException("window");
    return _fullWindow == window;
    }
    }
  • 相关阅读:
    快速排序和二分查找
    机器学习实战6-线性回归
    机器学习实战5-AdaBoost
    机器学习实战4-SVM
    机器学习实战3-贝叶斯分类
    机器学习实战2-决策树
    win10下caffe安装与mnist测试实验注意点
    机器学习实战1-K均值
    scikit-learn中机器学习模型比较(逻辑回归与KNN)
    结合前向后向算法求隐马尔科夫模型观测序列O的概率
  • 原文地址:https://www.cnblogs.com/252e/p/2024371.html
Copyright © 2011-2022 走看看