C# WPF:多屏幕
我正在用WPF写一个屏幕保护程序。我有屏幕保护程序,但是,它只显示在我的主显示器上。当用户有多个显示器时,是否有办法“遮光”或在其他显示器上绘制图形?我在附近搜索了一下,但没有找到任何相关的东西 更新 根据下面ananthonline的回答,我能够使用以下窗口在非主显示器上实现“黑屏”效果:C# WPF:多屏幕,c#,wpf,screensaver,C#,Wpf,Screensaver,我正在用WPF写一个屏幕保护程序。我有屏幕保护程序,但是,它只显示在我的主显示器上。当用户有多个显示器时,是否有办法“遮光”或在其他显示器上绘制图形?我在附近搜索了一下,但没有找到任何相关的东西 更新 根据下面ananthonline的回答,我能够使用以下窗口在非主显示器上实现“黑屏”效果: <Window x:Class="ScreenSaver.BlackOut" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/p
<Window x:Class="ScreenSaver.BlackOut"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Cursor="None" WindowStyle="None" ResizeMode="NoResize" Background="Black">
</Window>
注意:需要导入到
系统.Windows.Forms
才能访问屏幕
类。您应该能够使用System.Drawing.Screen.*类在每个屏幕上设置多个窗口。请注意,不要将每个窗口设置为最大化,而是设置一个大小适当、无边框的窗口
另外-您可能希望记住,多监视器设置的总边界可能并不总是矩形(如果您计划“联合”所有边界以创建一个跨越所有监视器的窗口)。谢谢,这正是我所需要的。
foreach (Screen s in Screen.AllScreens)
{
if (s != Screen.PrimaryScreen)
{
BlackOut blackOut = new BlackOut();
blackOut.Top = s.WorkingArea.Top;
blackOut.Left = s.WorkingArea.Left;
blackOut.Width = s.WorkingArea.Width;
blackOut.Height = s.WorkingArea.Height;
blackOut.Show();
}
}