WPF C# 多屏情况下,实现窗体显示到指定的屏幕内

7 篇文章 1 订阅

针对于一个程序,需要在两个显示屏上显示不同的窗体,(亦或N个显示屏N个窗体),可以使用如下的方式实现。

主要涉及到的:System.Windows.Forms.Screen.AllScreens和WindowState属性

 

 

1、首先Window.WindowState属性,其类型是一个枚举,若想在指定的屏幕上显示WindowState属性不能为Maximized,当为Maximized时窗体会显示在主屏上

namespaceSystem.Windows

{

   //    指定是最小化、最大化还是还原窗口

   public enum WindowState

   {

       //    还原窗口。

       Normal = 0,

       //    最小化窗口。

       Minimized = 1,

       //    最大化窗口。

       Maximized = 2

   }

}

 

 

2、System.Windows.Forms.Screen.AllScreens属性提供获取获取系统上所有显示器的数组,因此我们通过此属性获取各个屏幕的参数,从而使用Window.Top和Window.Left设置偏移参数实现窗体显示位置。

Eg:例子实现传入屏幕Screen 对象,让窗体显示到指定的屏幕Screen 中。

public void  Display(System.Windows.Forms.Screen screen)

       {

            Window window = m_RootCtrlasWindow;// RootCtrl为Window类实例

            if (window != null)

            {

                window.Top = 0;

                window.Left =screen.WorkingArea.Left;

                window.Show();

            }

       }

 


调用:m_window.Display(System.Windows.Forms.Screen.AllScreens[0]);//显示到第一块屏幕上。


注:假设屏幕分辨率是1920*1080,有两屏幕,多屏的情况下主屏的左上角的坐标为(0,0),第二个屏幕左上角坐标是(1920,0)

.说白了,就是让窗体自动偏移到指定的屏幕中,并且要注意Window.WindowState属性的设置。

 



  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值