I'm in the process of making a Scoreboard for a game (Starcraft II). This scoreboard is being made as a WPF Application with a C# code-behind. I already have a version which works for 90% in WinForms but I lacked the support to easily make it look a lot nicer which are available in WPF.

The point of this application will be to form a kind of overlay on top of a running game. In this overlay people can see the Score, Map, Players, Colors, etc. Basically all the info they need.

Since the main look of the app in WPF is based on an image with a transparent background I have set most Background values to Transparent. However when I do this the entire application does not get registered by streaming software. For example it just shows my Desktop or the game I'm playing but not my application even though it IS there. I can see it with my own eyes but the audience on the stream cannot.

Does anyone have any experience with this matter because it's really doing my head in. My entire application will be useless if it is not visible on streams. If I have to put the background on a color rather than transparent the UI will be completely demolished as well in terms of looks.

I'm basically trying to make a game-overlay in C# & WPF which is able to update with little hassle for the viewer. I have little to no knowledge regarding C++ and DirectX so I would not know where to start in that regard. This project currently holds 1 Developer and 1 Graphic Designer so it isn't a big scaled project, it will also be distributed for free once/if it gets finished. Any tips are welcome!

Thank you for your time reading and your possible insights.

  • \$\begingroup\$ What type of "streams" are you talking about? \$\endgroup\$
    – Nate
    Dec 7, 2010 at 21:12
  • \$\begingroup\$ Basically streams such livestream.com, ustream.tv, own3d.tv . Generally websites used by gamers to stream their games. The game in specific that I'm talking about is Starcraft II \$\endgroup\$
    – user3854
    Dec 7, 2010 at 21:50

1 Answer 1


Your window gets rendered using the HW acceleration of the video card to get transparency effects, and bypasses standard Windows GDI stack, which is captured by most streaming utilities.

Basically, you can a) hook DirectX's drawing functions and draw your overlay on top of the game (like Fraps does, for displaying FPS counter. AFAIK Steam overlay works the same way), though it can cause problems with anti-cheating tools

or b) advice your users to use streaming apps that CAN capture layered windows (as there are a number of screenshot tools that can, I assume there are streaming apps, too, though i havent used them personally)

or c) make important parts of your application square and not transparent.

or d) contact Blizzard to see if they have SDK for interacting with the game (Little chance, but you could probably at least get some advices)


You must log in to answer this question.