Screen Overlay For Screenshot

c#

Solution

Sure, just create a borderless, translucent window that covers all of the desktop screens.

You can find the right Rectangle to cover all of the screens with the following LINQ:

Rectangle bounds = Screen.AllScreens
                       .Select(x => x.Bounds)
                       .Aggregate(Rectangle.Union);

Then set the Left, Top, Width and Height of the Window from `bounds`

Problem

I would like to overlay a gray, translucent area over the entire screen through C#. Is this possible to do through Windows Forms and how would I go about doing this?

Original source