繁体   English   中英

色调颜色不适用于 iOS 中 Xamarin Forms 中的图像?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM