首页 > 其他分享 >WPF大展示专业指南:轻松实现多屏显示的绝技

WPF大展示专业指南:轻松实现多屏显示的绝技

时间:2024-02-25 09:00:10浏览次数:17  
标签:workingArea 多屏 Screen MainWindow 窗体 绝技 WPF 屏幕

 

概述:WPF通过
System.Windows.Forms.Screen类,实现多屏显示轻而易举。通过获取屏幕信息、确定窗体位置和设置窗体大小,可在大型展示或数据可视化应用中灵活利用多屏幕。示例代码清晰演示了如何在WPF中实现这一功能。

在WPF(Windows Presentation Foundation)中,实现多屏显示可以通过以下步骤完成。多屏显示对于大型展示或数据可视化应用程序非常有用。

  1. 获取屏幕信息: 使用System.Windows.Forms.Screen类获取系统上所有屏幕的信息,包括分辨率和位置。
using System.Windows.Forms;

// 获取所有屏幕信息
Screen[] screens = Screen.AllScreens;
  1. 确定窗体位置: 根据需要,确定窗体在哪个屏幕上显示,可以通过Screen类的属性获取屏幕的工作区域(不包括任务栏)。
// 获取主屏幕工作区域
Rectangle workingArea = Screen.PrimaryScreen.WorkingArea;

// 根据需要设置窗体位置
MainWindow.Left = workingArea.Left;
MainWindow.Top = workingArea.Top;
  1. 设置窗体大小: 根据需要设置窗体的大小,通常会根据屏幕的分辨率进行调整。
// 根据需要设置窗体大小
MainWindow.Width = workingArea.Width;
MainWindow.Height = workingArea.Height;
  1. 实例代码示例: 下面是一个简单的示例,展示如何在WPF应用程序中实现多屏显示。
using System;
using System.Windows;
using System.Windows.Forms;

namespace MultiScreenWPF
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            SetupWindowOnSecondaryScreen();
        }

        private void SetupWindowOnSecondaryScreen()
        {
            // 获取所有屏幕信息
            Screen[] screens = Screen.AllScreens;

            // 默认选择第一个屏幕
            Screen secondaryScreen = screens.Length > 1 ? screens[1] : screens[0];

            // 获取屏幕的工作区域
            Rectangle workingArea = secondaryScreen.WorkingArea;

            // 设置窗体位置和大小
            Left = workingArea.Left;
            Top = workingArea.Top;
            Width = workingArea.Width;
            Height = workingArea.Height;
        }
    }
}

这个示例在应用程序启动时,会将窗体显示在第二个屏幕(如果有的话)的工作区域内。根据实际需求,可以进一步调整窗体的位置和大小。

 

标签:workingArea,多屏,Screen,MainWindow,窗体,绝技,WPF,屏幕
From: https://www.cnblogs.com/hanbing81868164/p/18031931

相关文章

  • WPF 设备焦点捕获
    触摸等快速移动WPF元素时,因元素无法跟上元素移动速度,后续的移动事件无法触发导致移动操作停顿。这时候调用CaptureMouse捕获设备焦点,就可以支持设备快速移动操作。设备输入有三种鼠标、触笔、触摸,所以对应的设备焦点捕获也有三类:CaptureMouse、CaptureStylus、CaptureTouch项目......
  • C# 解决 WPF 导入项目报错 error : 找不到指定的 SDK
    参考MSB4236:找不到指定的SDK“name”2019:无法打开项目文件。无法找到.NETSDK环境软件/系统版本说明WindowsWindows10专业版22H219045.4046MicrosoftVisualStudioMicrosoftVisualStudioCommunity2022(64位)-17.6.5Microsoft.NetSDK8......
  • WPF 布局容器
    参考.NETAPIbrowserWPF-布局环境软件/系统版本说明WindowsWindows10专业版22H219045.4046MicrosoftVisualStudioMicrosoftVisualStudioCommunity2022(64位)-17.6.5Microsoft.NetSDK8.0.101手动安装Microsoft.NetSDK7.0.306......
  • 使用C# WPF写简单的桌面应用程序
    前言微软真是永远滴神,VisualStudio不愧是宇宙第一IDE,C#相比Java真的是语法简洁优雅案例实现了一个快速重命名的小程序,打包完以后的exe不到200KB,比Java轻的不是一点半点,而且在windows上执行效率很高,直接就可以在windows双击运行创建项目VisualStudio安装选择WPF选择.......
  • WPF PART_LeftThumb_DragDelta事件
    PART_LeftThumb_DragDelta事件是拖拽过程中实时触发的。当用户按住Thumb控件并拖动时,该事件会在每次鼠标或手指移动时实时触发,而不是按照时间间隔定时触发。这使得应用程序可以实时响应用户的操作,更新UI或执行其他操作。 DragDeltaEventArgs.HorizontalChange是指拖动操作期间......
  • 浅谈WPF之DataGrid动态生成列
    在日常开发中,DataGrid作为二维表格,非常适合数据的展示和统计。通常情况下,一般都有固定的格式和确定的数据列展示,但是在某些特殊情况下,也可能会需要用到动态生成列。本文以一些简单的小例子,简述在WPF开发中,如何动态生成DataGrid的行和列,仅供学习分享使用,如有不足之处,还请指正。 ......
  • 在WPF中使用本地Webview2,不依赖系统runtime
    在WPF中使用本地Webview2,不依赖系统runtime项目运行环境:.netframework4.5.2Windows7x64ServicePack1WebView2Microsoft.WebView2.FixedVersionRuntime.120.0.2210.91.x64考虑到很多老项目,本项目使用的是.netframework4.5.2,.Net更高版本的其实也是可以支持的。......
  • 在WPF的RichTextBox富文本中加入一个可点击的按钮
    <RichTextBox><local:MyFlowDocument><Paragraph><InlineUIContainer><ButtonContent="ClickMe!"Click="Button_Click"/>......
  • c# WPF 布局控件
    c#WPF布局控件风雨飘潇有鼻子有眼,普通路人一个 3人赞同了该文章一、概论WPF是继MFC和Winform后,下一代Windows桌面应用程序的技术。其核心是一个与分辨率无关并且基于向量的程序引擎,以在现代图形硬件的优势下,实现更优质的用户客户端软......
  • electron delphi winform wpf qt的对比
    Electron、Delphi、WinForms、WPF和Qt都是用于开发桌面应用程序的工具或框架,它们各自有一些独特的优点和适用场景。以下是对这些工具的简要对比:Electron:基于Web技术(HTML、CSS和JavaScript)的跨平台桌面应用程序开发框架。使用Chromium渲染引擎提供强大的页面渲染能力。适用......