I've been working for the last few months on WPF in the hope of getting panels to render via WPF inside FSX, to replace my old GDI+ bitmap and anti-aliased text FPS killer extravaganza.
There are two very nice features with WPF: (1) WPF uses hardware rendered 3D, which is blazingly fast compared to GDI+ that is almost 10 years old now and was never meant to do 3D. (2) WPF renders in ANY window container, meaning for FS work, you could theoretically design a panel inside FS, or outside FS, and having it look exactly the same and without code modifications or a dependency on the gauge SDK). Does not replace the gauge SDK of course, but opens a number of interesting possibilities.
WPF doesn't implement all the Direct3D functions, but has almost all the geometry and lighting features, but does lack a bit behind in terms of complex materials. For FS however, can more than handle the job.
The chief drawback is that WPF is only managed code. This is great if like me, you like C#, but bad, if, unlike me, you think C++ is the best thing since the VI editor was invented. Ok, C++ is faster than the CLR, but this can quickly become what I call a matter of "computer religion", and I stay clear of those. Getting .NET running inside FSX is also a fun challenge - that took about a month to figure out - main problem, FSX would blow up on startup. Solved using the raw CLR APIs (the very low level interfaces that allow one to load .NET as a regular OS process). I never did get FSX to work well with C++ Interop but you may have better luck.
Another hurdle with WPF 3D is that you need a 3D package to generate the meshes and map the textures - just like you don't go writing .X files manually and you use GMAX or 3DStudio.
Very few tools do this currently because WPF 3D is so new. GMAX cannot be used. To my knowledge, there is no XAML output from 3DS either.
I currently use Blender to create my WPF models as it's both free, very accomplished in terms of 3D modeling, and there's a XAML output filter for it (written by the WPF team, but needs a few modifications to work well with the current blender). The XAML file is a cut/paste affair inside a custom WPF control and bam, 3D.
If you're interested in the WPF possibilities inside of FSX, check this WPF example out:
http://blogs.msdn.com/wpf3d/archive/2006/12/12/interacting-with-2d-on-3d-in-wpf.aspx
If anyone has a clue how to create a modeless window that doesn't disappear inside FS in full screen mode while the other windows are active (desired behavior is what FSNavigator does if you're familiar with this tool), please share. That's the one issue I'm working on right now and the missing link to this WPF magic.
Once I have the kinks worked out, I'll share some sample code up here.
Cheers,
Etienne