WPF(Windows Communication Foundation) is replacement for Windows Forms in C#. We can develop WPF applications either using manual code or Mark-up code to create dynamic controls.
WPF Advantages
1. WPF provides the new mark-up language XAML.
2. By using WPF we can develop Vector graphics whereas by using Windows forms we can develop only Scalar graphics. In Scalar graphics, if we increase the width and height of image, the quality automatically reduced where as in Vector Graphics it will not effect.
3. Windows Forms cannot utilize complete acceleration supported by hardware where as WPF can utilize.
4. If we want to create animations by using Windows Forms, we have to write code manually and we have to use Timer Control. In WPF, we can develop animations by using built-in types and Timer Control is removed from WPF.
5. In Windows forms, a container cannot be there as a control in another control. Through WPF we can have.
6. WPF uses the new mark up language XAML(Extensible Mark-up Language), that is used for designing windows which makes designing easy and fast. Windows Forms does not support any mark up language.
7. WPF uses Vector graphics because of which the image, video will be displayed with the same quality event their width, height increased to any size. But windows forms uses scalar graphics that will affect the quality of image and video as their size increased.
8. WPF can utilize the complete acceleration supported by the graphics card but windows forms cannot utilize hence the graphics created with WPF are smoother than the graphics created with windows forms.
9. WPF provides a rich set of class libraries related to animations, because of which creating animation will be easy and fast. Where as in windows forms no built-in class libraries for animations and you have to write your own code for animations.
10. Every control in WPF is a container control and any control can contain any other control within it, this makes complex designing simple. But in windows forms every control cannot be used as container, limited set of controls available to use as container.