public virtual RectangleF ComputeFullBounds() {
RectangleF result = UnionOfChildrenBounds;
if (result != RectangleF.Empty) {
if (Bounds != Rectangle.Empty) {
result = RectangleF.Union(result, Bounds);
}
}
else {
result = Bounds;
}
if (result != RectangleF.Empty) {
result = LocalToParent(result);
}
return result;
}