# How to make the Steam overlay work with WPF?

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 :

<sharpGL:OpenGLControl
Name="openGLControl"
DrawFPS="False" RenderContextType="FBO" FrameRate="14"/>
<Grid Name="gridContainingMyApplication">

</Grid>


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,

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

It's because WPF only refresh areas that need update. Thus, create something transparent refresh repeatedly cover the whole window when OnGameOverlayActivated fires. For popup, just cover the right bottom corner when game start.