I have a bit of a chicken-and-egg problem here...
I want to print map data that is retrieved asynchronously from a web service. The problem is I don't know the selected paper size (which affects the size of the map I need to request from the service) until the user presses OK on the print dialog and the PrintPage event is fired.
The only thing I can think of is to somehow "pause" the entire printing process in the middle of the PrintPage event, retrieve the map image, set the current page's PageVisual to the map image, and then let the printing process continue. But this does not seem either possible or "correct".
I thought of having the user select a page size from a combo box before printing (that way I could retrieve the proper image size and enable the "print" button only after all the map data is retrieved). But then the user would need to select the page size twice, once from my combo box and once from the print dialog. If they selected 11x17 from the combo box and then just banged OK on the print dialog (which is very likely), it would print an 11x17 layout to the default 8.5x11 paper size.
The only other mention of this problem I found is http://betaforums.silverlight.net/forums/p/192371/444897.aspx, and they didn't find a solution either.