Charles Petzold



Updated Applications Now Available

July 4, 2006
Roscoe, NY

I have finally gotten around to republishing the five apps on the Applications = Code + Markup page to run under the June CTP.

In doing so, I caught another API change that's been made. In some programs (XAML Cruncher, for example) I've been XML-serializing and saving user settings during an override of the OnClosed method. Among these user settings is the RestoreBounds property. This allows the program to display itself at the same location and size the user last left it.

RestoreBounds is now clearly documented as returning an empty Rect after the window has been closed. I moved the code to save user settings from OnClosed to OnClosing and now all is well. (Oddly enough, an empty Rect object has its Width and Height properties set to -Infinity, which serialized fine, but caused XmlSerializer.Deserialize to throw an exception. I had that code in a try block anyway so I could create a new "settings" objects if there was a problem loading the old settings file, so it took a little while to actually track down the problem.)

The apparent confusion about pixels and device-independent coordinates has been fixed in the June CTP. This was causing a problem in ClockStrip when switching between digital and analog displays under display resolutions other than 96 DPI.