Why is WPF different in different versions of Windows?

I read that WPF uses DirectX under the hood to render it, that it does not rely on the dinosaur libraries that WinForms uses to render controls.

So, I created my Presentation layer with WPF, and it looks the way it should in Win8.

Then I deployed the project to Windows Server 2003 ... to find out that my beautiful little message box looks awfully similar to WinForms and somewhat awkward; the control buttons are VERY similar to WinForms, extender control no longer appears as a round arrow ^ and looks like it was drawn in 1998 (draw an arrow ^ on an ugly square flat button that appears when your muscle hangs over it).

From Pro WPF to C # 2010 Bible:

Part of the promise of WPF is that you don’t have to worry about the details and features of a particular hardware. WPF is smart enough to use hardware optimization where possible, but it has backup software for everything. So, if you run the WPF application on a computer with an outdated graphics card, the interface will still look the way you designed it .

So, is that a lie? This is for me, because it is not the way I designed it.

If not, then why / how does a thing not display equally regardless of the machine that starts it? Is the software backup somehow designed to simulate Win32 / GDI rendering? Is there a way to make my small custom message box look the same on Win8 and WinServer2K3?

+4
source share
1 answer

This has NOTHING for DirectX / Rendering / graphics card / any of them.

and ALL you need to do with WPF with the DEFAULT of all user interface elements from a Windows theme.

If you do not want this behavior, you need to provide Styles and Templates for ALL types of user interface elements or otherwise find a way to include PresentationFramework.Aero.dll in your application and use it as the default theme library.

See this answer

+4
source

All Articles