System.Windows.Controls.StackPanel.ArrangeOverride C# (CSharp) Метод

ArrangeOverride() защищенный закрытый Метод

protected final ArrangeOverride ( Size finalSize ) : Size
finalSize System.Windows.Size
Результат System.Windows.Size
		protected override sealed Size ArrangeOverride (Size finalSize)
		{
			Size arranged = finalSize;
			
			if (Orientation == Orientation.Vertical)
				arranged.Height = 0;
			else
				arranged.Width = 0;
			
			// Arrange our children
			foreach (UIElement child in Children) {
				Size size = child.DesiredSize;
				
				if (Orientation == Orientation.Vertical) {
					size.Width = finalSize.Width;
					
					Rect childFinal = new Rect (0, arranged.Height, size.Width, size.Height);
					
					if (childFinal.IsEmpty)
						child.Arrange (new Rect ());
					else
						child.Arrange (childFinal);
					
					arranged.Width = Math.Max (arranged.Width, size.Width);
					arranged.Height += size.Height;
				} else {
					size.Height = finalSize.Height;
					
					Rect childFinal = new Rect (arranged.Width, 0, size.Width, size.Height);
					
					if (childFinal.IsEmpty)
						child.Arrange (new Rect ());
					else
						child.Arrange (childFinal);
					
					arranged.Width += size.Width;
					arranged.Height = Math.Max (arranged.Height, size.Height);
				}
			}
			
			if (Orientation == Orientation.Vertical)
				arranged.Height = Math.Max (arranged.Height, finalSize.Height);
			else
				arranged.Width = Math.Max (arranged.Width, finalSize.Width);
			
			return arranged;
		}
	}