如何将图像加载到xamarin窗体PCL中的按钮上?

时间:2017-04-08 15:20:23

标签: xamarin xamarin.forms xamarin-studio

我正在从照片库中选择一张照片,我得到以下内容

AlbumPath:

资产库://asset/asset.JPG ID = 106E99A1-4F6A-45A2-B320-B0AD4A8E8473&安培; EXT = JPG

路径:

/用户/ MYNAME /库/开发商/ CoreSimulator /设备/ 21CB035B-A738-4F74-B121-2DB2A6B5372A /数据/容器/数据/应用/ 3081A323-98AF-4EF6-95B9-29D4C2CD8425 /文档/温度/ IMG_20170408_111143。 JPG

如何将此图像指定给按钮?我尝试了以下内容。

   var file = await CrossMedia.Current.PickPhotoAsync(
             new     Plugin.Media.Abstractions.PickMediaOptions
                            {

                            });


Button btn = new Button();
btn.Image = (Xamarin.Forms.FileImageSource)ImageSource.FromFile(file.Path);

按钮上没有显示图像。感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

部署应用程序后,应用程序将无法访问您的mac。对于使用图片的应用程序,它需要是iOS应用程序中的捆绑资源。以下是在iOS应用程序中使用图像的简单示例。你肯定会考虑只为你的图像添加一个手势监听器,而不是让它成为一个按钮。如果您尝试仅使用按钮上的图像,则必须进行一些样式调整以使其看起来干净。

图片设置

将图片放入iOS资源文件夹

image resource folder

确保从图像属性中选择了bundledresource。 enter image description here

图片按钮

 public class ImageButton : ContentPage
    {
        private Button _imageBtn = new Button { Image = "icon.png", Text = "Sample button" };

        public ImageButton()
        {
            Content = new StackLayout
            {
                Children =
                {
                    _imageBtn
                }
            };
        }
    }

enter image description here

使用TapGesture的图片

public class ImageButton : ContentPage
{
    private Image _imageBtn = new Image { Source = "icon.png" };
    private TapGestureRecognizer _imageTap = new TapGestureRecognizer();

    public ImageButton()
    {
        _imageBtn.GestureRecognizers.Add(_imageTap);
        Content = new StackLayout
        {
            Children =
            {
                _imageBtn
            }
        };
        _imageTap.Tapped += (s, e) => 
        { 
            // handle the tap 
        };
    }
}

enter image description here