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使用扩展屏幕的更多相关文章

  1. WPF的单位 屏幕 分辨率

    原文:WPF的单位 屏幕 分辨率 WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DP ...

  2. ubuntu扩展屏幕

    1.了解设置的名称 直接运行xrandr(不带任何参数)就可以显示出当前的显示设备及设备的模式. xdj@xdj-Presario-CQ42-Notebook-PC:~$ xrandr Screen ...

  3. WPF 获取鼠标屏幕位置、窗口位置、控件位置

    原文:WPF 获取鼠标屏幕位置.窗口位置.控件位置 public struct POINT { public int X; public int Y; public POINT(int x, int ...

  4. winform,wpf,winrt获取屏幕分辨率

    winform 当前的屏幕除任务栏外的工作域大小     this.Width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Widt ...

  5. linux屏幕扩展、扩展屏幕的校准

    #xrandr命令为屏幕扩展 #xinput命令为输入设备 #设置DSI-1为HDMI-1的右扩展 xrandr --output DSI- --right-of HDMI- --auto #DSI- ...

  6. 2.6 wpf标记扩展

    1.什么是标记扩展?为什么要有标记扩展? 标记扩展是扩展xmal的表达能力 为了克服现存的类型转换机制存在的 常用的标记扩展有如下: x:Array 代表一个.net数组,它的子元素都是数组元素.它必 ...

  7. WPF treeview扩展

    记录一下工作中遇到的问题,以便以后忘记了可以来看. 在工作中遇到一个问题,就是要实现类型如下的界面,没有使用Telerik和Dev库.本来最开始是想使用Datagrid,但不知道怎么实现treevie ...

  8. 设置Ubuntu右侧显示扩展屏幕。。。

    sudo xrandr --output VGA1 --right-of LVDS1 --auto

  9. Wpf窗口设置屏幕居中最前显示

    public Window()         {             InitializeComponent();             WindowStartupLocation = Win ...

随机推荐

  1. .NET跨平台:在Linux上基于ASP.NET 5用EF7生成数据库

    Linux用的是Ubuntu,dnx版本是1.0.0-beta6-12120,EF版本是7.0.0-beta5. 以下是用Entity Framework 7生成SQL Server数据库的操作步骤. ...

  2. Mac OS X上用CoreCLR运行一个真正的.NET控制台程序

    这个真正的控制台程序来自corefxlab,名叫CoreClrHelloWorld,是一个跨平台的.NET控制台演示程序,可以显示微软.Linux.苹果的logo. CoreClrHelloWorld ...

  3. 深究JS异步编程模型

    前言  上周5在公司作了关于JS异步编程模型的技术分享,可能是内容太干的缘故吧,最后从大家的表情看出"这条粉肠到底在说啥?"的结果:(下面是PPT的讲义,具体的PPT和示例代码在h ...

  4. Emmet语法大全手册

    这是基于官方手册整理制作的,因为那个手册网页打开很慢,所以就整理在这里了.以备不时之需. Syntax   Child: > nav>ul>li <nav> <ul ...

  5. 记一次https访问握手失败(handshake failure)

    文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6239518.html  转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点, ...

  6. mysql闪退或者can not connect 127.0.0.1

    MYSQL 无安装文件 exe执行时闪退 mysql闪退或者can not connect 127.0.0.1 APP 百款主流机型兼容性免费测 »   Mysql  官网上下载的Mysql 但是没有 ...

  7. python函数的参数

    代码: # coding=utf8 # 可以传入任何个参数 def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return ...

  8. python星号变量

    python 元组 tupletup1 = ('physics', 'chemistry', 1998, 2000)tup2 = (1, 2, 3, 4, 5)tup3 = 'a', 'b', 'c' ...

  9. MySQL基础操作(一)

    1. 连接数据库mysql -h localhost -u root -p 123456 2. 查看数据库版本select version(); 3. 查看数据库支持的存储引擎和当前默认存储引擎sho ...

  10. (转载)新手如何正确理解GitHub中“PR(pull request)”中的意思

    我从知乎看到的两个答案,分别从实际意义以及语言学角度告诉你改怎么理解PR,很简洁,这个理解非常棒,会解决新手刚看到PR(pull request)这个词时的困惑.   实际意义:   有一个仓库,叫R ...