As you may already know, the ProgressBar control in Silverlight for Windows Phone has a serious performance problem when setting the IsIntermediate property to true
. Basically, it chokes the UI thread.
This was discussed and solved a few month ago by Jeff Wilcox.
Jeff’s solution was to replace the control template with a new one which looks the same but does a better job. This control template was part of a style which was kept in the application resources section. So to use this patch, you also had to set the style for each ProgressBar
you used.
Although this solution works great, I find it lacks some polishing..
So I here-by present you my ProgressBarWithText
control.
ProgressBarWithText
control wraps Jeff’s solution in an easy to use user control which already contains the new style and template. So using it is as simple as:
<local:ProgressBarWithText Text="Loading Posts..."
ShowProgress="{Binding IsPostsLoading}" />
As you might have already guessed from the post title, I’ve added a text block to the control which will be shown whenever the progress bar, well, progress…
The reason for adding this feature was that I’ve found that every time I use a progress bar, I wish to write a simple text near it, usually something like “Loading…”
The end result looks like this:
You can download here the source code for the control and sample application that uses it.
By the way, if anyone recognizes this class from the “Using Pivot and Panorama Controls” lab found in the Windows Phone Training Kit for Developers, that’s fine, it’s because I wrote this lab for Microsoft.
That’s it for now,
Arik Poznanski.