当CALayer设置为Xamarin.Mac中的NSButton层时,NSButton标题不可见

时间:2017-01-10 08:46:22

标签: xamarin xamarin.mac

enter image description here我对NSButton Title的可见性感到震惊。我所做的是,我已经采用CALayer并为该层安排背景颜色,角半径和边框宽度。最后,此图层设置为NSButton图层但是在执行此操作后,NSButton的标题不可见。请提出任何想法。提前谢谢。

这是我的代码,我尝试过的。

 var wordButton = new NSButton(new CGRect(20, 0, tableColumn.Width - 70, 30));

 CALayer layer = new CALayer();

 layer.CornerRadius = 5f;

 layer.BorderWidth = 1f;

 layer.BackgroundColor = NSColor.FromRgba(0.70f, 0.87f, 0.86f, 1.0f).CGColor;

 wordButton.WantsLayer = true;

 wordButton.Layer = layer;

 wordButton.Title = "Test";

 wordButton.SetButtonType(NSButtonType.MomentaryPushIn);

 wordButton.BezelStyle = NSBezelStyle.SmallSquare;

1 个答案:

答案 0 :(得分:1)

自定义现有图层:

wordButton.WantsLayer = true;

//wordButton.Layer = layer;
wordButton.Layer.CornerRadius = 5f;
wordButton.Layer.BorderWidth = 1f;
wordButton.Layer.BackgroundColor = NSColor.FromRgba (0.70f, 0.87f, 0.86f, 1.0f).CGColor;

但是这将是默认按钮UI背后的背景。

NSButton的设计不是以这种方式定制的。 如果你想要一个自定义背景,你应该子类化NSButton覆盖drawrect并自己绘制标签