A ProgressBar With Text For Windows Phone 7

January 27, 2011

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 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:

image

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.

Add comment
facebook linkedin twitter email

Leave a Reply

one comment

  1. Jan SlodickaFebruary 7, 2011 ב 16:38

    Just wanted to point to http://www.codeproject.com/KB/showcase/WP7-Animations.aspx.
    You will see that PerformanceProgressBar is not a solution either.
    If you have CPU demanding activity then you should not use any Storyboard animations at all or your task will end up 2x longer.