【发布时间】:2016-09-07 07:20:15
【问题描述】:
我正在使用 Xamarin.Forms,我希望全局使按钮看起来更好一些。
对于使用自定义渲染器的 Android 版本,我已经很好地实现了这一点,但在 iOS 上我无法做到这一点。
在我的 XAML 页面中定义按钮时,我引用了“CustomButton”而不是“Button”,然后我的 iOS 应用程序中有以下 CustomButtonRenderer。
大多数样式更改都可以正常工作(边框半径等),但我似乎无法让它为按钮呈现背景渐变。
到目前为止,这是我的代码,但背景只显示为白色。我怎样才能让它显示一个渐变,上面有文字?
class CustomButtonRenderer : ButtonRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (Control != null)
{
var gradient = new CAGradientLayer();
gradient.Frame = Control.Layer.Bounds;
gradient.Colors = new CGColor[]
{
UIColor.FromRGB(51, 102, 204).CGColor,
UIColor.FromRGB(51, 102, 204).CGColor
};
Control.Layer.AddSublayer(gradient);
Control.Layer.CornerRadius = 10;
Control.Layer.BorderColor = UIColor.FromRGB(51, 102, 204).CGColor;
Control.Layer.BorderWidth = 1;
Control.VerticalAlignment = UIControlContentVerticalAlignment.Center;
}
}
}
【问题讨论】:
-
给您的个人建议:如果您在特定平台上遇到困难,请搜索该平台以及您想要做什么。由于 api 非常相似,您通常会轻松找到您的解决方案 :)
标签: xamarin xamarin.ios xamarin.forms