文本块不对齐

时间:2017-10-12 21:25:14

标签: c# wpf

我有以下Textblock,我似乎无法让文本对齐:

TextBlock headerBlock;
Canvas headerContainer;

public setLayout()
{
   headerContainer= new Canvas();
   headerContainer.Background = new Brushes.Black;

   headerBlock= new TextBlock();
   headerBlock.FontSize = 10;
   headerBlock.Text = "This must be centered";
   headerBlock.TextAlignment = System.Windows.TextAlignment.Center;
   headerBlock.Foreground = Brushes.White;
   headerBlock.Padding = new System.Windows.Thickness(20);


   headerContainer.Children.Add(headerBlock);

}

由于某种原因,TextAlignment未对齐文字。我还可以添加其他内容以强制headerBlock文本对齐中心吗?

2 个答案:

答案 0 :(得分:2)

此行为是由于画布

=>画布用于根据像素位置组织元素。 用网格替换你的画布,它会起作用。

你还必须写出zambonee建议的内容:

TextAlignment将对齐控件内的文本。 HorizontalAlignmentVerticalAlignment会将控件放在其容器内。

=>与两者一起玩,以获得你需要的东西。

答案 1 :(得分:0)

TextBlock没有扩展以填充其父级,并且可能卡在其父级的左上角。试试这个

headerBlock.HorizontalAlignment = HorizontalAlignment.Center; //or Stretch with TextAlignment = Center
headerBlock.VerticalAlignment = VerticalAlignment.Center; //or Stretch