WPFでスクリーンセーバーを書いています。スクリーンセーバーは動作していますが、メイン モニターにしか表示されません。ユーザーが複数のディスプレイを使用している場合、追加のモニターに「ブラックアウト」またはグラフィックを描画する方法はありますか? 私はいくつかの検索を行いましたが、関連するものは見つかりませんでした。
アップデート
以下の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
次のプロセスを使用して、画面ごとに 1 つを初期化します。
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