Blog coding and discussion of coding about JavaScript, PHP, CGI, general web building etc.

Thursday, August 18, 2016

Text on a ProgressBar in WPF

Text on a ProgressBar in WPF


This may be a no-brainer for the WPF cognoscenti, but I'd like to know if there's a simple way to put text on the WPF ProgressBar. To me, an empty progress bar looks naked. That's screen real estate that could carry a message about what is in progress, or even just add numbers to the representation. Now, WPF is all about containers and extensions and I'm slowly wrapping my mind around that, but since I don't see a "Text" or "Content" property, I'm thinking I'm going to have to add something to the container that is my progress bar. Is there a technique or two out there that is more natural than my original WinForms impulses will be? What's the best, most WPF-natural way to add text to that progress bar?

Answer by Abe Heidebrecht for Text on a ProgressBar in WPF


If you are needing to have a reusable method for adding text, you can create a new Style/ControlTemplate that has an additional TextBlock to display the text. You can hijack the TextSearch.Text attached property to set the text on a progress bar.

If it doesn't need to be reusable, simply put the progress bar in a Grid and add a TextBlock to the grid. Since WPF can compose elements together, this will work nicely.

If you want, you can create a UserControl that exposes the ProgressBar and TextBlock as public properties, so it would be less work than creating a custom ControlTemplate.

Answer by Bob Wintemberg for Text on a ProgressBar in WPF


You could use an Adorner to display text over top of it.

See MSDN article on Adorners

You would create a class that inherits from the Adorner class. Override the OnRender method to draw the text that you want. If you want you could create a dependency property for your custom Adorner that contains the text that you want to display. Then use the example in the link I mentioned to add this Adorner to your progress bar's adorner layer.

Answer by SmartyP for Text on a ProgressBar in WPF


Both of the prior responses (creating a new CustomControl or an Adorner) are better practices, but if you just want quick and dirty (or to understand visually how to do it) then this code would work:

                    My Text         

Just keep in mind that the z-index is such that the last item listed will be on top.

Also, if you don't have Kaxaml yet, be sure to pick it up - it is great for playing with XAML when you're trying to figure things out.

Answer by Nudity for Text on a ProgressBar in WPF


This can be very simple (unless there are alot of ways getting this to work).

You could use Style to get this done or you just overlay a TextBlock and a ProgressBar.

I personally use this to show the percentage of the Progress while loading.

To make it the mosty easy way I only want to have one Binding so I attached the TextBock.Text to the ProgressBar.Value.

To place the Controls exactly over eachother use a Grid or any other Control.

Then just copy the Code to get it done.

              

Here is how this could look like:

enter image description here

Check http://www.wpf-tutorial.com/misc-controls/the-progressbar-control/ for the full tutorial.

Greetings

Answer by AnjumSKhan for Text on a ProgressBar in WPF


Right click ProgressBar, and click Edit Template > Edit a Copy.

Then put the TextBlock as shown below just above the closing tag of Grid in the Style generated by VS.

                


Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72

0 comments:

Post a Comment

Popular Posts

Powered by Blogger.