Xamarin.Forms - 如何使用可点击图像制作自定义视图?

Posted

技术标签:

【中文标题】Xamarin.Forms - 如何使用可点击图像制作自定义视图?【英文标题】:Xamarin.Forms - How do I make a custom view with a clickable image? 【发布时间】:2016-08-01 20:57:42 【问题描述】:

我正在制作一个包含许多需要处理点击事件的图像网格的应用程序。我可以用这个制作一个可点击的图像,

        Image clickableImage = new Image();
        clickableImage.Source = ImageSource.FromFile("image.png");

        imageTap.Tapped += (object sender, EventArgs e) =>
        
            System.Diagnostics.Debug.WriteLine("Image clicked!");
        ;

        clickableImage.GestureRecognizers.Add(imageTap);

但我需要有超过 20 个可点击的图像。有没有办法创建类似 Angular2 模板的东西?

【问题讨论】:

【参考方案1】:

您可以在共享项目本身中创建一个自定义控件,该控件继承自图像并支持单击并在整个应用程序中使用它。

ClickableImage : Image 

      public ClickableImage()
      
           Tapped += (sender, e) => 
           
                 System.Diagnostics.Debug.WriteLine("Image clicked!");
           ;
      

【讨论】:

使用***.com/questions/6866347/…,我能够将函数作为参数传递给 Tapped 方法。 如果您有改进,请发布您自己的答案,这对他人也有帮助。 在那里,添加了我更新的代码作为答案。抱歉拖了这么久【参考方案2】:

感谢Rohit's answer,我能够创建一个自定义控件,我对其进行了修改以将匿名函数作为参数。代码如下:

class ClickableImage : Image

    private TapGestureRecognizer tapGestureRecognizer = new TapGestureRecognizer();

    public ClickableImage(Action action)
    
        tapGestureRecognizer.Tapped += (s, e) => 
        
           System.Diagnostics.Debug.WriteLine("Image Clicked w/ Lambda");
           action();
        ;

        GestureRecognizers.Add(tapGestureRecognizer);
    

【讨论】:

以上是关于Xamarin.Forms - 如何使用可点击图像制作自定义视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Xamarin Forms 为 iOS 项目制作可点击的滑块?

如何在 Xamarin.Forms 中使用 Tap Gesture 调用另一个页面?

如何在 Xamarin Forms 中的数据绑定指定的位置放置文本

如何调整 xamarin.forms 中的图像大小?

如何调整 xamarin.forms 中的图像大小?

内存泄漏处理Xamarin.Forms