TextBlock文本右对齐,但在XAML中从左侧定位

时间:2016-02-11 09:24:24

标签: wpf xaml

在WPF XAML中,如果我在<TextBlock />内左侧手动定位了一个<Canvas /> 100像素,那么文本(例如“Hello World”)可能会开始在100像素左标记,* 但是 *然后向左移动,添加的文字越多?

1 个答案:

答案 0 :(得分:2)

TextBlock有一个TextAlignment属性,您可以认为它会做您想要的。

然而,对于Canvas,这不起作用。您需要做的是计算文本的长度并相应地移动文本块的左侧点:

double offset = 0.0;
double difference = (element.Width) - element.ActualWidth;
switch (element.TextAlignment)
{
    case TextAlignment.Center:
        offset = 0.5 * difference;
        break;
    case TextAlignment.Right:
        offset = difference;
        break;
}
element.SetValue(Canvas.LeftProperty, component.LeftProperty + offset);

这应该将TextBlock移动到正确的位置。