Quality and performance are two basic requirements of all graphics applications. Although an increase in one demands a sacrifice in the other, a good developer will employ good design and coding techniques to provide an optimal solution. In this chapter we discussed some techniques that may be helpful in writing optimal solutions for graphics applications.
We learned about the paint event mechanism and different ways to fire the paint event automatically, as well as manually. We also discussed double buffering, and how it can be achieved with or without the SetStyle method. In addition, we learned a few good programming techniques and covered some topics that may help you implement some good, performance-oriented coding and design practices.
As a GDI developer, you may want to use some of the "cool" techniques of GDI that are not supported by GDI+. Chapter 14 is dedicated to GDI interoperability. In it, we will discuss how you can mix GDI and GDI+ to take advantage of interoperability.
GDI+: The Next-Generation Graphics Interface
Your First GDI+ Application
The Graphics Class
Working with Brushes and Pens
Colors, Fonts, and Text
Rectangles and Regions
Working with Images
Advanced Imaging
Advanced 2D Graphics
Transformation
Printing
Developing GDI+ Web Applications
GDI+ Best Practices and Performance Techniques
GDI Interoperability
Miscellaneous GDI+ Examples
Appendix A. Exception Handling in .NET