The solution you have found will work fine.
Here is a short explanation why the label is acting the way you described. For RadLabel TextAlignment means alignment of the text primitive that is inside the control, not the way in which the text is painted. The functionality you need is controlled by the TextPrimitive and its property StringAlignment.
Your code sets the same property to the root element and that property is propagated to the primitive. In order to see and manipulate the properties of TextPrimitive you must click "Edit UI elements" from the Action List of RadLabel and select the tree item that starts with "Text:".
We agree that the behavior of RadLabel's TextAlignment is not obvious and differ from the behavior of Microsoft's Label. In one of the upcoming releases the label's API will be refactored in order to achieve more consistent behavior with other labels as well as to expose the rich painting functionality in a better way. Now the only way to have full control of TextPrimitive painting functionality is to access non-browsable property PaintTextFormat.
For example, to disable painting of a line of text that is only partially visible you must use code like this:
TextPrimitive primitive = (TextPrimitive)this.radLabel1.RootElement.Children.Children;
primitive.PaintTextFormat.FormatFlags |= StringFormatFlags.LineLimit;
which is not the easiest and most intuitive way.
the Telerik team