WPF多屏显示 | 您所在的位置:网站首页 › 屏幕用时显示 › WPF多屏显示 |
目录WPF多屏显示实现代码实现原理注意事项
WPF多屏显示
实现代码
需要在分屏显示的窗体 需要在分屏显示的窗体后台代码 public partial class FrmSubScreen : Window { public FrmSubScreen() { InitializeComponent(); this.Loaded += (s, e) => { foreach (Screen scr in Screen.AllScreens) { if (!scr.Primary) { //设置窗体位置 WindowStartupLocation = WindowStartupLocation.Manual; Left = scr.WorkingArea.Left; Top = scr.WorkingArea.Top; WindowState = WindowState.Maximized; break; } } }; } }让窗体在分屏显示的代码 public class SecondaryScreen { public static void Display() { var screens = Screen.AllScreens; if (Screen.AllScreens.Count()>=2) { Dispatcher.CurrentDispatcher.Invoke(()=> { try { FrmSubScreen subScreen = new FrmSubScreen(); subScreen.Show(); } catch (Exception e) { Logger.Default.Error(e.Message,e.StackTrace); } }); } } } 实现原理假设屏幕分辨率是1920*1080,有两屏幕,多屏的情况下主屏的左上角的坐标为(0,0),第二个屏幕左上角坐标是(1920,0)。双屏显示就是让窗体自动偏移到指定的屏幕中。 例如: Left = scr.WorkingArea.Left; Top = scr.WorkingArea.Top; 注意事项需要特别注意:Window.WindowState属性的设置,如果在Xaml代码中直接设置最大化,那么无论后续如何设置分屏窗口都会直接显示在主屏幕中。 解决方案: 在Loaded时设置WindowState = WindowState.Maximized |
CopyRight 2018-2019 实验室设备网 版权所有 |