WPF多屏最大化

  如果计算机存在多个显示器,这时设置wpf窗口为最大化,窗口只能在主显示器中实现最大化,如果想要实现窗口拉伸至多屏,需要获取所有显示器分辨率之和。这时用到了System.Windows.SystemParameters命名空间。
  SystemParameters 是一个类,包含多个系统参数值属性。其中VirtualScreenWidth与VirtualScreenHeight可分别获取虚拟屏上的宽高。虚拟屏即是所有监视器边框。
  C#代码:

        public MainWindow()
        {
            InitializeComponent();
            FullScreen();
        }

        private void FullScreen()
        {
            this.WindowState = WindowState.Normal;
            this.WindowStyle = System.Windows.WindowStyle.None;
            this.ResizeMode = System.Windows.ResizeMode.NoResize;
            this.Left = 0;
            this.Top = 0;
            this.Width = System.Windows.SystemParameters.VirtualScreenWidth;
            this.Height = System.Windows.SystemParameters.VirtualScreenHeight;
        }

  在 XAML 中,可以使用 SystemParameters 的成员作为静态属性用法或动态资源引用达到同样的效果:

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        WindowState="Normal" WindowStyle="None" ResizeMode="NoResize" Left="0" Top="0"
        Height="{x:Static SystemParameters.VirtualScreenHeight}" Width="{x:Static SystemParameters.VirtualScreenWidth}">
    <Grid>
    </Grid>
</Window>

WPF多屏最大化

时间: 2024-12-17 09:29:42

WPF多屏最大化的相关文章

WPF触屏Touch事件在嵌套控件中的响应问题

原文:WPF触屏Touch事件在嵌套控件中的响应问题 前几天遇到个touch事件的坑,记录下来以增强理解. 具体是 想把一个listview嵌套到另一个listview,这时候如果list view(子listview)的内容过多超过容器高度,它是不会出现滚动条压缩内容区域的,反而会将滚动区域转移到外面的list view(父listview),这个无可争议,但这个问题开始没留意,为待会的坑埋下伏笔. 因为 然后就是设置鼠标滚轮. 首先我使用了MouseWheel事件,奇怪的是它明明是个路由事件

WPF 多屏时子窗口的屏幕位置问题

问题: 在多个显示屏运行的情况下,如果将主窗口从当前显示屏移动到另一显示屏. 设置子窗口单例模式,在当前显示屏时弹出后,在主窗口移动到另一显示屏后,再弹出子窗口时,你会发现子窗口跑到原来显示屏去了. ----这是WPF的锅 因为已经设置了WindowStartupLocation="CenterOwner",也加了Owner的情况下,窗口每次弹出,理论上就该和主窗口保持在同一屏幕的. 解决: 通过窗口的Activated添加委托,每次窗口唤醒,都重新设置窗口的Location subW

WPF中窗体最大化问题处理

遇到的问题信息 问题:当WindowStyle=None时,窗口最大化,不显示任务栏 -- 即窗体是全屏效果. 解决中遇到的问题列表[主要涉及到任务栏发生改变后的一些问题处理]: 最大化时,任务栏被遮盖: 最大化后,拖动任务栏,无法自适应窗体: 最大化后,拖动任务栏,窗体还原,还原数据丢失,始终显示最大: 最大化后,拖动任务栏,窗体还原,设置之前保存的窗体位置数据,再次设置,由于和之前一样,窗体位置信息不生效: 解决方案 思路:窗体最大化时,将窗体透明化,设置内部元素Grid的Margin属性,

WPF 录屏软件研发心得及思路分享

最近由于工程需要开始研发基于Windows的自动录屏软件,很多细节很多功能需要处理,毕竟一个完美的录屏软件不是你随随便便就可以写出来的.首先参考了大部分的录屏软件,在研发的过程中遇到了很多的问题:比如-视频加载.麦克风加载.麦克风音量调节.视频播放进度控.视频音量控制.等等很多细节部分都需要好好规划才能开始做.录屏采用的是视频帧的思维逻辑进行编写的. 目前已经基本上成型,基于WPF采用了Model - View框架进行动态加载,每个线程与线程之间采用Async异步执行,并使用线程等待:录屏基本功

【WPF】WPF截屏

引言 .NET的截图控件在网上流传得不多啊,难得发现一个精品截图控件( 传送门),但是无奈是winform的,无鄙视winform的意思,纯偏爱WPF罢了.后来又找到一个周银辉做的WPF截图(继续传送门),发现截屏是实现了,但是功能略少了点.So,打算自己用WPF去实现一个,无奈略渣,还是简单分享一下吧. 一个Window和一个Canvas Window是截图的主界面,但是设置好WindowStyle和WindowState就基本没它什么事了,Window里面放个Canvas,Canvas主要承

wpf窗口禁止最大化但允许调整大小

wpf中窗口禁止最大化可以通过属性ResizeMode来设置,但是ResizeMode有一个问题就是如果ResizeMode设置为NoResize的话,是可以禁止最大化的,但是这样同时也就不能拖动调整大小了,通过如下方法可以达到这个效果,通过win32 API来设置: 需要用到的API函数: [DllImport("user32.dll", EntryPoint = "GetWindowLong")] public static extern int GetWind

WPF 多屏开发,为窗体指定显示屏幕

在开发POS应用过程中,有一个这样的需求: POS机大都拥有一个主屏一个副屏,主屏用于业务操作,副屏用于向客户展示实时交易数据.这样就有了对窗体显示在哪个窗体有了特定的要求.但是作为一个比较懒惰的程序员,我重来不愿意为这样的事情去做第二次,所以实现一个Window的扩展来实现这样的事情. 实现构想,通过System.Windows.Forms下Screen类获取屏幕信息,实现Attribute用于标记窗体指定的显示屏幕. 以下是实现代码: using Pharos.POS.Retailing.M

2019-11-27-WPF-全屏透明窗口

原文:2019-11-27-WPF-全屏透明窗口 title author date CreateTime categories WPF 全屏透明窗口 lindexi 2019-11-27 09:22:19 +0800 2019-11-27 08:48:26 +0800 WPF 本文告诉大家如何在 WPF 做一个全屏的透明窗口,和全屏透明窗口的坑 使用下面代码就可以作出全屏透明窗口 public MainWindow() { InitializeComponent(); AllowsTransp

WPF 杂记

1,跨屏最大化 单屏幕的时候我们可以设置 WindowState 来使应用最大化 当接多个屏幕的时候,就需要下面这个设置: private void FullScreen() { this.WindowState = WindowState.Normal; this.WindowStyle = System.Windows.WindowStyle.None; this.ResizeMode = System.Windows.ResizeMode.NoResize; this.Left = 0;