It is not possible to get a constant frame rate in WPF. WPF is based on the idea of dynamic frame rates, and this makes it almost useless for any game development.
Some related information:
Why is the frame rate in WPF irregular and not limited for monitor updates?
http://rhnatiuk.wordpress.com/2008/12/21/wpf-video-playback-problems/
As others have pointed out, the solution, unfortunately, should not use WPF for game development.
I have worked a lot with WPF animation, and it is very painful for me to get something to animate smoothly in WPF (if you want to, I have written some best practices here.)
I am sure there are many other reasons why WPF is not suitable for game development. For example, you cannot create a full-screen application in WPF because WPF applications will always be terminated. This means that you cannot change the resolution for your game to make it smooth in full-screen mode, which in fact means that you cannot create a full-screen game in WPF and expect good results.
If you are serious about your game or game development in general, and this is not just a prototype or just for fun, I recommend that you cut out WPF and use something else, otherwise you just set yourself up for disappointment and -par quality.
Patrick klug
source share