private double DetermineHeight() {
if (!double.IsNaN(PositionY)) return _child.DesiredSize.Height;
switch (_child.VerticalAlignment) {
case VerticalAlignment.Top:
return _child.DesiredSize.Height;
case VerticalAlignment.Bottom:
return _child.DesiredSize.Height;
case VerticalAlignment.Center:
return _child.DesiredSize.Height;
case VerticalAlignment.Stretch:
return AdornedElement.ActualHeight;
default:
return 0d;
}
}