I can see the benefit. But what is the base level to align to?

Here the label is the same width as the progress bar, with the text align right. Then the text will always align to the right edge of the progress bar. Unless the size of the window or progress bar changes.

Using Canvas.SetRight(progress_label, 40), or equivalent, the label positioning becomes dependent on the size of the window.

I'm happy to change it, I'm just unsure how to align it.