【问题标题】:How to read image source or image name in xamarin.forms?如何在 xamarin.forms 中读取图像源或图像名称?
【发布时间】:2019-03-14 06:21:51
【问题描述】:

我正在处理 Xamarin 表单,我在其中使用了 TapGestureRecognizer 内部图像,现在点击该图像我需要在 c# 中获取图像的源。我怎么得到那个?我这样做的原因是,单选按钮在 Xamarin 表单中不可用,在点击图像时,如果源被选中,我将检查图像的源,然后我需要将源更改为未选中,反之亦然。

这是我的 XAML 代码

   <Image  Scale="0.7"  HorizontalOptions="Start" x:Name="radioButton" Source="unchecked.png">
       <Image.GestureRecognizers>
           <TapGestureRecognizer Tapped="radioButton_Clicked"> 
           </TapGestureRecognizer>
       </Image.GestureRecognizers>
   </Image>

这是我的 C# 代码

    private void radioButton_Clicked(object sender, EventArgs e)
    {
        var imageSource = "";//get image source here
        if (imageSource == "Checked.png")
        {
            radioButton.Source = "Unchecked.png";
        }
        else
        {
            radioButton.Source = "Checked.png";
        }
    }

【问题讨论】:

  • 你可以这样做 var image = (Image)sender; var selectedImage = image.Source as FileImageSource;

标签: c# xamarin xamarin.forms xamarin.android xamarin.ios


【解决方案1】:

你可以在 radioButton_Clicked 动作上实现这样的效果

 private void radioButton_Clicked(object sender, EventArgs e)
{
    var imageSource = (Image)sender;//get image source here
    var selectedImage = imageSource.Source as FileImageSource;

    if (selectedImage.File == "Checked.png")
    {
        radioButton.Source = "Unchecked.png";
    }
    else
    {
        radioButton.Source = "Checked.png";
    }
}

或者你可以使用自定义插件来支持复选框参考这个 https://github.com/XLabs/Xamarin-Forms-Labs

【讨论】:

  • 我想为你的回答点赞,但我没有可以点赞的评价
  • @SagarPatil 没关系
【解决方案2】:

您可以将发件人投射到图像控制

var imageSender = (Image)sender;

gestures

【讨论】:

  • 如果我使用 var imageSender = (Image)sender;我可以获得 imageSender.Source 但文件名位于 imageSender.Source.File 下。怎么能得到呢?
猜你喜欢
  • 2017-10-17
  • 1970-01-01
  • 2021-11-22
  • 2015-11-01
  • 2014-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多