图片来自ImageSource

Image from ImageSource

我尝试按照@CraigDunn 的following example 示例代码

someButton.Image = ImageSource.FromFile("imageName.png");

我自己的尝试是这样的:

        _NavBarPrevPage = new Button
        {
            Image = ImageSource.FromResource("media_step_back.png")),
            BackgroundColor = Color.Red,
            TextColor = Color.White,
        };

对我来说,IDE 告诉我:

The type Xamarin.Forms.ImageSource can't be converted to Xamarin.Forms.FileImageSource. An explicit conversion exists. Perhaps a conversion is missing.

我想我正在做@CraigDunn 提议的事情。 我做错了什么?

我已经尝试了以下方法,我能够摆脱当前答案中的转换错误,但是图像没有显示在按钮上,而是显示在图像中,所以文件名正确:

        var nImg = new FileImageSource()
        {
            File  = "media_step_back.png",
        };

        _NavBarPrevPage = new Button
        {
            Image =nImg,
        };

如果您需要的是通过代码隐藏实现的带有图像的按钮:

Button button = new Button
            {
                BackgroundColor = Color.Red,
                Font = Font.Default,
                FontSize = 10,
                TextColor = Color.White,
                HeightRequest = 35,
                WidthRequest = 80
            };

            button.Image = "media_step_back.png";

            this.Content = button;

请记住将图像文件 (media_step_back.png) 放在目标平台的资源文件夹中

更新:

你的问题是你没有在 属性 文件夹和目标平台的资源文件夹 中添加图像源(请注意,在下面的示例中,我添加了一个 xamarin.png 每个 Xamarin "Property" 文件夹中的图像,Android 的 "Resource" 和 iOS 的 "Resource" 文件夹)

下面是我将按钮放入 StackLayout 中的更新代码(如果没有 StackLayout 也可以工作):

public class MainPageNew : ContentPage
    {
        public MainPageNew()
        {
            StackLayout parent = new StackLayout();
            Button button = new Button
            {
                BackgroundColor = Color.Red,
                Font = Font.Default,
                FontSize = 10,
                TextColor = Color.White,
                HeightRequest = 300,
                WidthRequest = 80
            };

            //button.Image = "media_step_back.png";
            button.Image = "xamarin.png";

            parent.Children.Add(button);

            this.Content = parent;
        }

Android

iOS:

This是更新代码的下载link。