我是c#silverligth开发者。 我有一个包含1行和3列的网格。在每个列的内部我有一个stackpanel,在该stackpanel上我显示文本块。我这样做是因为它看起来不错,我有更多的空间,我可以在1中显示多于1个项目使用此堆栈面板的网格单元格。 我这样做的代码是:
TextBlock txtblkLabel = new TextBlock();
txtblkLabel.Text = param.Label;
StackPanel sp1 = new StackPanel();
sp1.Orientation = Orientation.Horizontal;
sp1.Children.Add(txtblkLabel);
sp1.Width = 50;
sp1.Height = 50;
Grid.SetRow(sp1, LoopCount);
Grid.SetColumn(sp1, 2);
g.Children.Add(sp1);
现在显示屏位于左上方,但我想将此文本显示在中心位置。
如何在c#代码中实现它(不是xaml)?
答案 0 :(得分:1)
您不能在StackPanel的中间对齐控件。 StackPanel并不意味着将控件置于其中心。它意味着将控件堆叠在其中,即一个接一个。
您可以使用TextBlock填充StackPanel,也可以使文本居中,也可以使用另一个Grid而不是StackPanel或其他解决方案......
答案 1 :(得分:1)
你可以试试这个,
txtblkLabel.VerticalAlignment = System.Windows.VerticalAlignment.Center;
txtblkLabel.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
txtblkLabel.TextAlignment = System.Windows.TextAlignment.Center;