[英]Tint color is not working for image in Xamarin Forms in iOS?
我正在使用此nuget 包以 xamarin 形式处理嵌入式图像色调颜色,在 android 中运行良好,但在 iOS 中运行良好。 根据我的搜索,我将渲染模式用于 AlwaysTemplate,但在我的场景中,我无法使用渲染模式。 我正在做的是使用来自解决方案文件而不是来自 iOS 资产的图像引用。
下面是我的代码片段。
<controls:TintedImage
x:Name="ColorChange"
Aspect="AspectFit"
HeightRequest="17"
Source="{local:ImageResource AppName.Images.dot.png}"
TintColor="{StaticResource PlaceholderColor}"
VerticalOptions="Center"
WidthRequest="17" />
如果图像没有以 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;
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.