private Size GetActualSize(Size areaSize) { var actualSize = DesiredSize.Intersect(areaSize); if (Width == SizeUnit.Unlimited) { actualSize.Width = areaSize.Width; } if (Height == SizeUnit.Unlimited) { actualSize.Height = areaSize.Height; } return(actualSize); }