我有以下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
文本对齐中心吗?
答案 0 :(得分:2)
此行为是由于画布。
=>画布用于根据像素位置组织元素。 用网格替换你的画布,它会起作用。
你还必须写出zambonee建议的内容:
TextAlignment
将对齐控件内的文本。
HorizontalAlignment
和VerticalAlignment
会将控件放在其容器内。
=>与两者一起玩,以获得你需要的东西。
答案 1 :(得分:0)
TextBlock没有扩展以填充其父级,并且可能卡在其父级的左上角。试试这个
headerBlock.HorizontalAlignment = HorizontalAlignment.Center; //or Stretch with TextAlignment = Center
headerBlock.VerticalAlignment = VerticalAlignment.Center; //or Stretch