我无法在xaml.cs上的xamarin中更改图像源

7xzttuei  于 2023-03-06  发布在  其他
关注(0)|答案(1)|浏览(136)

我想在xamarin中更改图像源,但不知何故,我看不到我在.cs中给x:name的值。

<Image Source="{local:ResourceResimExt ResourceId=OzelKalem.Content.images.yellowicon.png}"  x:Name="resim_icon"  VerticalOptions="CenterAndExpand" HorizontalOptions="Start" Margin="49,-28,0,0" IsVisible="true" WidthRequest="16" HeightRequest="16"/>

我想在xaml.cs上这样写:
resim_icon.Source =图像源.来自文件(“redicon.png”);
我试过了,没用

if ((KalanGun < 0 && durum == 1) && sonTarih < DateTime.Now)
{
   
    ResourceResimExt resource = new ResourceResimExt();
    resource.ResourceId = "OzelKalem.Content.images.redicon.png";
    var imageSource = ImageSource.FromResource("OzelKalem.Content.images.redicon.png");
    Xamarin.Forms.ImageSource.FromResource("OzelKalem.Content.images.redicon.png");
 
}
else if ((KalanGun > 0 && durum == 2) || durum == 2)
{
    ResourceResimExt resource = new ResourceResimExt();
    resource.ResourceId = "OzelKalem.Content.images.greenicon.png";
    var imageSource = ImageSource.FromResource("OzelKalem.Content.images.greenicon.png");
    Xamarin.Forms.ImageSource.FromResource("OzelKalem.Content.images.greenicon.png");
    //resim.ResourceId = "OzelKalem.Content.images.greenicon.png";

}

以及xaml:<Image Source="{Binding ImageSource}"/> xaml.cs:

private ImageSource _imageSource;
 public ImageSource ImageSource
    {
        get { return _imageSource; }
        set { _imageSource = value; }
    }
if ((KalanGun < 0 && durum == 1) && sonTarih < DateTime.Now)
{
_imageSource = ImageSource.FromResource("OzelKalem.Content.images.redicon.png");
}
2guxujil

2guxujil1#

实际上我的项目中有一些类似嵌入式图像结构的东西。但是我不明白如何在xaml.cs中动态地改变它。所以我尝试了所有方法,但都没有成功。需要改变图像源。

public class ResourceResimExt : IMarkupExtension
        {
            public string ResourceId
            {
                get;
                set;
            }
            public object ProvideValue(IServiceProvider serviceProvider)
            {
                try
                {
                    if (String.IsNullOrWhiteSpace(ResourceId)) return null;
                    return Xamarin.Forms.ImageSource.FromResource(ResourceId);
                }
                catch (Exception)
                {
                    return null;
                }
            }
        }

下面的代码是这样使用的:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (string.IsNullOrEmpty(value.ToString()))
                return null;

            else if (value.ToString().Contains("Gelen"))
                return Xamarin.Forms.ImageSource.FromResource("OzelKalem.Content.images.callin.png");

            return Xamarin.Forms.ImageSource.FromResource("OzelKalem.Content.images.callout.png");
        }

相关问题