Charles Petzold

June CTP Template Changes

June 27, 2006
A waterlogged Roscoe, NY

Here's what seems to have happened: For several controls, the default ControlTemplate previously included a MinWidth setting (and sometimes a MinHeight setting), and with the June CTP these settings have been removed. As I indicated yesterday, this affects the GridSplitter most of all. I've been relying on that default size, and I suspect everyone else has as well.

But this change also affects other controls in less blatant ways. If an empty TextBox is not stretched to its container, it will be very narrow. In a couple small "data-entry" type programs, I was relying on the default width of TextBox to govern the layout. A different approach is required.

The Button also no longer has a MinWidth. I've been relying on this minimum width in dialog boxes to ensure that my OK buttons were the same size as Cancel, and that code also had to be fixed.

But otherwise, I'm pretty optimistic (as well as tired). I've gone through the first 21 chapters of my book testing the code under the June CTP, and I've only found a few other problems. Nothing has refused to compile yet, which is always a good sign that at least the API definition has become stable.

Chris Sells raised the issue of the risks involved in targeting a book for release so close to the release of the actual product. I would much rather not even start a book until the product was released, but for something like this, that's not my call. My publisher sets the schedule and I adjust my life to that. That's my job.

Someone put a bullet through the eye of MinWidth. No one knows who gave the order. When I heard about it, I wasn't angry. I let it go. And I said to myself, this is the business we've chosen.