问题描述
我正在与this nuget包一起使用xamarin形式的内嵌图像色调颜色,在android上工作正常,但在iOS中工作不佳。 根据我的搜索,我对Alwaystemplate使用了渲染模式,但是在我的场景中,我无法使用渲染模式。 我正在做的是使用解决方案文件中的图像引用,而不是iOS资产中的图像引用。
下面是我的代码段。
{{1}}
如果要在Xamarin表单中没有为iOS渲染图像的图像,我想更改TintColor。
解决方法
您可以编写Image
的自定义渲染器以更改色调颜色和UIImageRenderingMode
。
在Xamarin.forms中:
public class myImage : Image
{
}
在iOS项目中:
[assembly: ExportRenderer(typeof(myImage),typeof(myImageRenderer))]
namespace WorkingWithImages.iOS
{
public class myImageRenderer : ImageRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Image> e)
{
base.OnElementChanged(e);
Control.TintColor = UIColor.Red;
}
protected override void OnElementPropertyChanged(object sender,PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender,e);
if (Control.Image != null)
{
UIImage image = Control.Image;
image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
Control.Image = image;
}
}
}
}