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 = Size.Round(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;
}