wpf 多屏显示
wpf需要在分屏上显示窗体代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <Window x:Class= "WpfApp1.MainWindow" xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d= "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc= "http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local= "clr-namespace:WpfApp1" xmlns:vlc= "clr-namespace:Vlc.DotNet.Wpf;assembly=Vlc.DotNet.Wpf" mc:Ignorable= "d" Title= "MainWindow" Height= "450" Width= "800" > <Grid> <vlc:VlcControl x:Name= "vlcControl" Loaded= "vlcControl_Loaded" MouseMove= "vlcControl_MouseMove" /> </Grid> </Window> |
需要在分屏显示的窗体后台代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #region 分屏显示 this .Loaded += (s, e) => { foreach (Screen scr in Screen.AllScreens) { if (!scr.Primary) { LogHelper.WriteLog(GetType(), "进入Screen" ); //设置窗体位置 WindowStartupLocation = WindowStartupLocation.Manual; Left = scr.WorkingArea.Left; Top = scr.WorkingArea.Top; WindowState = WindowState.Maximized; break ; } } }; #endregion |
实现原理
假设屏幕分辨率是1920*1080,有两屏幕,多屏的情况下主屏的左上角的坐标为(0,0),第二个屏幕左上角坐标是(1920,0)。双屏显示就是让窗体自动偏移到指定的屏幕中。
例如:
Left = scr.WorkingArea.Left;
Top = scr.WorkingArea.Top;
注意事项
需要特别注意:Window.WindowState属性的设置,如果在Xaml代码中直接设置最大化,那么无论后续如何设置分屏窗口都会直接显示在主屏幕中。
转载:http://t.zoukankan.com/fishpond816-p-14292841.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)