I have developed a game using C#+WPF and the game is currently on Steam (private branch until release). However Steam's overlay isn't working with WPF. Sometimes it tries to appear in the popups of comboboxs.

I've tried several options, the best so far was to render a black screen using SharpGL under my application :

            DrawFPS="False" RenderContextType="FBO" FrameRate="14"/>
<Grid Name="gridContainingMyApplication">


But as you can imagine this decreases the performance of the application and some effects can appear delayed (mouseover for example).

It was not a major concern until now but since we are planning on adding multiplayer we would like to find a way to make Steam's overlay work.

I know that WPF isn't the best option to create games but in our case we thought it would be. We've created a simulation game and since we have a lot of tables/stats/etc. we thought WPF was great, and excepting this overlay issue WPF seems perfect for us.

Is there a way to make Steam's overlay work with WPF ?

Thank you,

  • \$\begingroup\$ I'm having a similar problem with WinForms. Pop-ups do show, but the overlay itself does not. \$\endgroup\$
    – user35443
    Sep 8, 2016 at 6:40
  • \$\begingroup\$ Did you get your WinForm game to work on Steam? \$\endgroup\$
    – johnny
    Aug 10, 2017 at 2:17

1 Answer 1


It's because WPF only refreshes areas that need updating.

So you can create something transparent that covers the whole window and refresh it repeatedly when OnGameOverlayActivated fires to ensure everything gets re-drawn.

For the pop-up, just cover the bottom right corner when the game starts.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .