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