WPF使用扩展屏幕
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes; namespace ScreenShadow
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
} private void Button_Click(object sender, RoutedEventArgs e)
{
Window1 window = new Window1();
window.Show();
} private void Button_Click_1(object sender, RoutedEventArgs e)
{
Window2 window = new Window2();
window.Show();
}
List<Window> openWindows = new List<Window>();
private void Button_Click_2(object sender, RoutedEventArgs e)
{
openWindows.Clear();
Screen[] screens = Screen.AllScreens;
if (screens.Length == )
{
lblmsg.Content = "已经投射1个显示器";
}
else if (screens.Length == )
{
lblmsg.Content = "已经投射2个显示器";
}
else if (screens.Length == )
{
lblmsg.Content = "已经投射4个显示器";
}
else {
lblmsg.Content = "目前仅支持1,2,4个显示器模式";
} //主屏幕显示
Screen mainScreen = screens.FirstOrDefault(x=>x.Primary==true);
//主屏幕显示window1
Window1 win1 = new Window1();
win1.WindowState = WindowState.Maximized;
win1.WindowStartupLocation = WindowStartupLocation.Manual;
System.Drawing.Rectangle mswa = mainScreen.WorkingArea;
win1.Left = mswa.Left;
win1.Top = mswa.Top;
win1.Width = mswa.Width;
win1.Height = mswa.Height;
openWindows.Add(win1);
win1.Show(); //其他屏幕显示,这里假设有2个
var subScreen = (from o in screens where o.Primary == false select o).ToList<Screen>();
if (subScreen.Count > ) {
var subscreen1 = subScreen[];
Window2 win2 = new Window2();
win1.WindowState = WindowState.Maximized;
win1.WindowStartupLocation = WindowStartupLocation.Manual;
System.Drawing.Rectangle mswa2 = subscreen1.WorkingArea;
win2.Left = mswa2.Left;
win2.Top = mswa2.Top;
win2.Width = mswa2.Width;
win2.Height = mswa2.Height;
openWindows.Add(win2);
win2.Show();
} } private void BtnClose_Click(object sender, RoutedEventArgs e)
{
if (openWindows.Count > ) {
foreach (var item in openWindows)
{
item.Close();
}
}
} }
}
WPF使用扩展屏幕的更多相关文章
- WPF的单位 屏幕 分辨率
原文:WPF的单位 屏幕 分辨率 WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DP ...
- ubuntu扩展屏幕
1.了解设置的名称 直接运行xrandr(不带任何参数)就可以显示出当前的显示设备及设备的模式. xdj@xdj-Presario-CQ42-Notebook-PC:~$ xrandr Screen ...
- WPF 获取鼠标屏幕位置、窗口位置、控件位置
原文:WPF 获取鼠标屏幕位置.窗口位置.控件位置 public struct POINT { public int X; public int Y; public POINT(int x, int ...
- winform,wpf,winrt获取屏幕分辨率
winform 当前的屏幕除任务栏外的工作域大小 this.Width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Widt ...
- linux屏幕扩展、扩展屏幕的校准
#xrandr命令为屏幕扩展 #xinput命令为输入设备 #设置DSI-1为HDMI-1的右扩展 xrandr --output DSI- --right-of HDMI- --auto #DSI- ...
- 2.6 wpf标记扩展
1.什么是标记扩展?为什么要有标记扩展? 标记扩展是扩展xmal的表达能力 为了克服现存的类型转换机制存在的 常用的标记扩展有如下: x:Array 代表一个.net数组,它的子元素都是数组元素.它必 ...
- WPF treeview扩展
记录一下工作中遇到的问题,以便以后忘记了可以来看. 在工作中遇到一个问题,就是要实现类型如下的界面,没有使用Telerik和Dev库.本来最开始是想使用Datagrid,但不知道怎么实现treevie ...
- 设置Ubuntu右侧显示扩展屏幕。。。
sudo xrandr --output VGA1 --right-of LVDS1 --auto
- Wpf窗口设置屏幕居中最前显示
public Window() { InitializeComponent(); WindowStartupLocation = Win ...
随机推荐
- 【ASP.NET Web API教程】6.3 内容协商
本文是Web API系列教程的第6.3小节 6.3 Content Negotiation 6.3 内容协商 摘自:http://www.asp.net/web-api/overview/format ...
- GoDaddy自动续费信用卡被扣款后的退款方法
今天突然收到信用卡被GoDaddy捐款的通知,上GoDaddy网站上一看,是去年购买后来没有使用的一个CA证书被自动续费了.原来在GoDaddy购买的CA证书默认是每年自动续费的,这是一个大坑啊! 当 ...
- [安卓] 8、VIEW和SURFACEVIEW游戏框架
这是个简单的游戏框架,上图显示我们实现了屏幕上对象的位置控制.这里要1个简单的layout资源和2个java类:在MainActivity中主要和以往一样,唯一不同的是去除电池图标和标题等操作,然后第 ...
- [读书笔记]C#学习笔记六: C#3.0Lambda表达式及Linq解析
前言 最早使用到Lambda表达式是因为一个需求:如果一个数组是:int[] s = new int[]{1,3,5,9,14,16,22};例如只想要这个数组中小于15的元素然后重新组装成一个数组或 ...
- AT&T ASSEMBLY FOR LINUX AND MAC (SYS_FORK)
Fork() in C: (sys_fork.c) #include <stdio.h> #include <stdlib.h> #include <unistd.h&g ...
- IOS设计模式浅析之简单工厂模式(SimpleFactory)
概述 首先说明一下,简单工厂模式不属于23种GOF设计模式之一.它也称作静态工厂方法模式,是工厂方法模式的特殊实现.这里对简单工厂模式进行介绍,是为本系列后面的工厂方法和抽象工厂模式做一个引子. 定义 ...
- JAVA学习Swing章节标签JLabel中图标的使用
package com.swing; import java.awt.Color; import java.awt.Component; import java.awt.Container; impo ...
- innosetup安装之前关闭进程
InnoSetup覆盖安装的时候可能会因为源程序正在运行而安装失败,以下脚本能够关闭原运行进程. [code] // 安装前检查关闭**进程 function InitializeSetup():Bo ...
- NXP LPC 状态可配置的定时器(SCT)
状态可配置的定时器(SCT) 前言正在申请专利的状态可配置的定时器(SCT),是一个复杂的,但易于配置的定时器,它提供前所未有的灵活性,使工程师们在未来证明他们的设计,并减少进入市场的时间.在其最简单 ...
- Windows 8.1 with update 官方最新镜像汇总
Windows 8.1 with update 官方最新镜像汇总,发布日期: 2014/12/16,Microsoft MSDN. 镜像更新日志: 12/29:32位大客户专业版中文版 12/24:6 ...