History
The first GUI-based environment Microsoft started with windows 3.0 version.Within this, Microsoft achieved complete GUI based environment to provide GUI facilities. Microsoft used a component known as User32.dll.
User32.dll was able to provide complete GUI Facilities like creating textbox, buttons etc. But using User32.dill it was unable to create 2-Dimensional facilities and use hardware acceleration facilities.
Hardware acceleration facilities, in general, all the graphic cards provides inbuilt GUI Facilities directly without writing any code for creating 2-Dimensional images, figures etc. GUI facilities are not available in User32.dll. So to overcome this problem, Microsoft invented Graphical Device Interface.
Description
GDI provides 2-D facilities with the help of hardware acceleration.That means instead of re-writing code, inbuilt hardware facilities can be used.But through GUI provided hardware acceleration facilities it was unable to provide 3-D facilities.Even gaming programs were not satisfied with GDI to develop gaming applications.
To satisfy gaming developers, Microsoft invented Direct X which totally concentrates on gaming development.But it does not support application development facilities like hospital applications, bank applications etc.
To overcome the above problems, Microsoft Invented Windows Presentation Foundation (WPF).