internal virtual Size InternalGetPreferredSize(Size proposed) { Size size; if (Text == string.Empty) { size = new Size(0, Font.Height); } else { var txt = new NSText(); txt.Value = Text; txt.Font = Font.ToNsFont(); txt.SizeToFit(); size = Util.NSSizeToSize(txt.Frame.Size); } #if NET_2_0 size.Width += Padding.Horizontal; size.Height += Padding.Vertical; if (!use_compatible_text_rendering) { return(size); } #else size.Height = Font.Height; #endif if (border_style == BorderStyle.None) { size.Height += 3; } else { size.Height += 6; } return(size); }