經常會遇到要在Canvas里將各類控件居中的問題,下面以TextBlock為例說明。
//在將TextBlock添加到Canvas前獲取它的實際尺寸 TextBlock label = new TextBlock; label.Text = "It is a test"; label.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Size labelSize = label.DesiredSize; Canvas canvas = new Canvas(); canvas.Width = 100; canvas.Height = 40; canvas.Children.Add(label); Canvas.SetLeft(label, (canvas.Width - labelSize.Width)/2); Canvas.SetTop(label, (canvas.Height - labelSize.Height)/2);
