我最初实现此功能,只是简单地将图像添加到按钮。然后我意识到我可以简单地为图像添加一个轻击手势(没有使用按钮)。任何建议哪种方式最好,为什么?感谢。
答案 0 :(得分:6)
我使用自己的“OnClick”事件为Image :)和自定义控件:
public class MyImage : Xamarin.Forms.Image
{
public static BindableProperty OnClickProperty =
BindableProperty.Create("OnClick", typeof(Command), typeof(MyImage));
public Command OnClick
{
get { return (Command)GetValue(OnClickProperty); }
set { SetValue(OnClickProperty, value); }
}
public MyImage()
{
GestureRecognizers.Add(new TapGestureRecognizer() {Command = new Command(DisTap)});
}
private void DisTap(object sender)
{
if (OnClick != null)
{
OnClick.Execute(sender);
}
}
}
然后将其与MVVM一起使用,如:
<local:MyImage Source="{Binding Img}" OnClick="{Binding ImgTapCommand}" />
答案 1 :(得分:2)
这取决于您想要达到的视觉效果。
答案 2 :(得分:1)
你可以使用绝对布局,它可以用来将两个元素放在彼此之上,确保按钮是第二个元素。
<AbsoluteLayout>
<Image Source="clock.png" AbsoluteLayout.LayoutBounds="0.2,0.2,35,35" AbsoluteLayout.LayoutFlags="PositionProportional"/>
<Button AbsoluteLayout.LayoutBounds="0.2,0.2,35,35" AbsoluteLayout.LayoutFlags="PositionProportional" BorderColor="Transparent" BackgroundColor="Transparent" Command="{Binding AlertMeCommand}"/>
</AbsoluteLayout>