On the discussion of window chrome

WindowChromeCompare

My friend Danny and I were discussing whether or not you should use a custom window chrome on your desktop programs. We both have the same subject for our third year projects, and this issue came up when we were talking about my custom window border in PascalDE. It’s a bit picky and some might not see it as an argument at all, but I want to share why it does have an importance in some cases.

A custom chrome can help make the program look more aesthetically pleasing, and makes the border look more consistent with the content it is holding. In PascalDE, the custom chrome at the top matches the status bar inside the program. In WPF, it is also much easier to include additional UI elements (like buttons) when the chrome is part of your app and not controlled exclusively by the operating system. For example, I could add the ‘always to top’ button to a custom chrome far easier.

However, using the default chrome means new users are familiar with it, and they know what to expect from it. Instead of the program being consistent across operating systems, the chrome is more suited to the OS environment you are in. For example, in Windows Vista and 7, aero glass can be taken advantage of. Because the chrome is in the OS’s control, any future buttons or functionality the OS makers change is added to your program without any effort, whereas a custom chrome would need changing by the developer.

Custom chrome can sometimes make programs look worse, too. Remember this?

wmpold

I believe the custom chrome I have implemented for PascalDE is a nice compromise between a consistent, modern aesthetic and functionality you expect from the default chrome. Standard window buttons are in their familiar place, there’s a default window right click menu, and resizing, snap and shake gestures are all present.