设置WPF窗体全屏显示:

//全屏代码:private void Window_Loaded(object sender, RoutedEventArgs e)
{
    // 设置全屏
    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;
}

 

 扩展类:

项目先引用下面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;
        }
    }

 

时间: 2024-08-01 12:28:40

设置WPF窗体全屏显示:的相关文章

wpf-c#代码设置WPF窗体显示到第二个显示屏

问题描述 c#代码设置WPF窗体显示到第二个显示屏 想在WPF窗体界面放二个按钮,显示屏幕1 显示屏幕2 当我点击按钮 显示屏幕1 窗体全屏显示在 主屏幕 : 相反,当我点击 显示屏幕2 就显示在 第二个屏幕去...! 解决方案 参考: using System.Linq; using System.Windows; namespace ExtendedControls { static public class WindowExt { // NB : Best to call this fun

c# 如何实现屏幕的全屏显示

问题描述 有一个BMP图,如何用C#实现在显示器上显示该图像(图像分辨率和显示器相同)急等啊 解决方案 解决方案二:想实现在局域网中过的屏幕广播,现在已获取了控制端的屏幕信息,也通过网络发到本地内存,现在不知道怎么在本地能显示出来呢?求回答解决方案三:这不是序列化与反序列化吗解决方案四:你利用C#DrawingGraphics重绘图片解决方案五:窗体全屏显示然后图像在窗体上全屏显示不就得了?..解决方案六:一个无边框的窗体,里面放一个picturebox:picturebox.Dock=Dock

C#窗体全屏功能

窗体全屏的方法: 隐藏任务栏.设置工作区域 窗体最大化.设置窗体边框样式 全屏窗体代码 public partial class FrmFullScreen : Form { Boolean m_IsFullScreen = false;//标记是否全屏 Rectangle rectOld = Rectangle.Empty; public FrmFullScreen() { InitializeComponent(); } /// <summary> /// 全屏按钮的Click事件 ///

C#窗体全屏功能实例代码_C#教程

最近有朋友让我给他弄个应用程序全屏的功能,例如银行的取号程序界面.所以我从网上查询了一些实现的方法. C#应用程序中如何实现全屏幕显示功能? 效果就像windows自带的屏幕保护程序和众多的游戏那样,无论是否设置了"将任务栏保持在其他窗口的前端"都不显示任务栏 实现方式一 在网上找来一些简单的实现方式: this.FormBorderStyle = FormBorderStyle.None; //设置窗体为无边框样式 this.WindowState = FormWindowState

C#中让控件全屏显示的实现代码

1.使用winapi "SetParent" 接口: 复制代码代码如下: [DllImport("user32.dll", SetLastError = true)]  static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);  复制代码代码如下: control.Dock = DockStyle.None;  control.Left = 0;  control.Top = 0;

修改linux内核开机logo并居中全屏显示

1.准备图片 使用ubuntu自带的绘图软件GIMP是最为快捷的方式,使用命令进行转换也可以,实际测试中用命令转换图片老提示错误,所以就用GIMP的方式处理了.具体流程如下: (1)打开GIMP软件并加载图片资源(file->open),自己的原图片格式应该不限制,我的是bmp格式的. (2)点击Image->mode->Indexed 并在弹出的选项框内设置Generate optimum palette下的Maximum number of colors:224 原值默认为255,点

如何让win7电脑的桌面壁纸全屏显示?

  虽然说咱们的win7 64位旗舰版下载装好的时候,微软设置的是有默认壁纸的,但是这些壁纸背景往往都是一样的,千篇一律的感觉,似乎让很多用户都觉得不够好看,不够个性化,也没有专属于自己的感觉,那么怎么办呢?其实,在咱们的win7旗舰版系统中,完全是可以自行设置这个壁纸背景的,今天,小编要介绍的win7旗舰版电脑的操作技巧便于这个壁纸背景设置有关,那就是如何设置全屏壁纸.下面,咱们就将操作方法详细的介绍一下吧! 1.首先,咱们返回到win7旗舰版电脑的桌面位置,之后,咱们在桌面上任意的找到一个空

VC下做一个功能,双击列表控件,使得列表全屏显示,按Esc键恢复原来状态,怎么做?

问题描述 VC下做一个功能,双击列表控件,使得列表全屏显示,按Esc键恢复原来状态,怎么做? 使用List Control,双击它的时候能够变成全屏,按Esc键恢复原来状态 解决方案 是什么环境?如果是VB或者C#,你可以做一个窗口,不要边框和标题栏(controlbox FormBorderStyle),list control dock设置为fill响应keypress,如果是窗口,就切换到全屏的那个窗口,否则切换回来. 解决方案二: 处理db_click双击消息,然后MoveWindow调

imageview-如何让图片在ImageView中全屏显示?

问题描述 如何让图片在ImageView中全屏显示? 在ScrollView中嵌套Linearlayout,在linearlayout布局中有很多的ImageView控件,然后在代码中添加帧动画,imageview指定大小时(比如layout_width="50dp"),图片可以正常显示,但是做屏幕适配的时,将imageview的layout_width和layout_height设置为match_parent后,所有的图片都是缩小显示,这是为什么?如何做才可以将图片全屏显示? 解决方