WPF:多个屏幕

我正在WPF中编写一个屏幕保护程序。 我有屏幕保护程序工作,但是,它只显示在我的主显示器上。 当用户有多个显示器时,是否有办法“禁用”或将图形绘制到其他显示器上? 我已经做了一些探索,但没有发现任何相关的东西。

UPDATE

从下面的ananthonline的回答中,我可以使用以下窗口在非主显示器上实现“黑屏”效果:

<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>

并使用以下过程为App.xaml.cs中的每个屏幕初始化一个:

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();
    }
}

注意需要导入到System.Windows.Forms才能访问Screen类。


您应该可以使用System.Drawing.Screen。*类在每个屏幕上设置多个窗口。 请注意,您并未将每个窗口设置为最大化,而是设置了适当大小的边框窗口。

另外 - 您可能想要记住多监视器设置的总界限可能不总是矩形(如果您计划“联合”所有界限以创建跨越所有监视器的窗口)。

链接地址: http://www.djcxy.com/p/14907.html

上一篇: WPF: Multiple screens

下一篇: C and Class Cluster pattern