我尝试创建一个圆角/圆形按钮,可以显示字体图标。由于我已在项目中使用Iconize,因此尝试从现有IconButton
创建圆角/圆形按钮。
我首先尝试了这一点,将BorderRadiusas
/ HeightRequest
的半值修改为WidthRequest
:
<iconize:IconButton HeightRequest="40" WidthRequest="40"
BorderRadius="20"
Text="fa-500px" TextColor="Red" FontSize="20"
BackgroundColor="Orange" BorderColor="Red"
BorderWidth="2"
VerticalOptions="Start" HorizontalOptions="Center">
</iconize:IconButton>
默认渲染在UWP上按预期工作,但是&#34;点击&#34;渲染效果不佳,因为出现了一个矩形。 但是在Android上,按钮始终处于&#34;默认&#34;模式:没有边框,没有背景,......
所以我为Android添加了 FlatButton 控件和渲染器:
public class FlatButton : IconButton
{
}
[assembly: ExportRenderer(typeof(FlatButton), typeof(FlatButtonRenderer))]
namespace Iconize.Sample.Droid.Renderers
{
public class FlatButtonRenderer : ButtonRenderer
{
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
base.OnDraw(canvas);
}
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
}
}
}
我这样使用它:
<controls:FlatButton HeightRequest="40" WidthRequest="40"
BorderRadius="20"
Text="fa-500px" TextColor="Red" FontSize="20"
BackgroundColor="Orange" BorderColor="Red"
BorderWidth="2"
VerticalOptions="Start" HorizontalOptions="Center">
</controls:FlatButton>
这一次,圆形渲染在Android上运行良好,但我已经失去了&#34;显示&#34;字体图标。
以下是截图:
有没有办法保持圆角渲染器和图标显示? 第二次,有没有办法在单击按钮时修复UWP上的渲染问题?
我还看了其他插件:
您还有其他建议吗?
答案 0 :(得分:0)
我终于找到了一个临时解决方案,重新定义Iconize IconButtonRenderer
,如下所示:
IconButton
IconButtonRenderer
。我不得不删除第一个调试测试,以及构造函数的预期新格式:public CircleIconButtonRenderer(Context context) : base(context)
。所以这个课程显得“过时”。IconButton
一样。但是可能有更好的方法,因为预期的构造函数没有实现......