首页 > 解决方案 > iOS 上工具栏项中的图像是白色的(Xamarin 表单)

问题描述

在此处输入图像描述

嗨,我有 Xamarin Forms 项目,并且在 andorid 和 uwp 上的工具栏项目中工作正常,但在 iOS 上是白色图像。你能帮帮我吗?

我的xml代码:

ContentPage.ToolbarItems
            ToolbarItem 
                         Priority="0"
                         Order="Primary" Command="{Binding PrikaziInfoFilteriCommand}"
                ToolbarItem.Icon
                    OnPlatform x:TypeArguments="FileImageSource"
                        OnPlatform.Android
                            FileImageSource File="greenifnromation.png"
                        OnPlatform.Android

                        OnPlatform.iOS
                            FileImageSource  File="greenifnromation.png" 
                        OnPlatform.iOS
                        OnPlatform.WinPhone
                            FileImageSource File="Assets/greenifnromation.png" 
                        OnPlatform.WinPhone

                    OnPlatform
                ToolbarItem.Icon

            ToolbarItem
            ToolbarItem Icon="{Binding ImageSourceKalendarPlusMinus}"            
                         Priority="0" 
                     Order="Primary" Command="{Binding PrikaziCommand}"

            ToolbarItem
        ContentPage.ToolbarItems

标签: iosxamarin.formstoolbarimage-size

解决方案


默认情况下,iOS 在其 ToolbarItems 中具有白色色调,这就是它没有按照您想要的方式显示的原因。不幸的是,您将不得不创建一个 iOS NavigationRenderer。让它覆盖 NavigationPage,然后添加以下代码:

public override void PushViewController(UIViewController viewController, bool animated)
    {
        base.PushViewController(viewController, animated);

        var currentPage = (this.Element as Xamarin.Forms.NavigationPage)?.CurrentPage;

        if (this.NavigationBar == null || currentPage == null)
            return;

        var buttonItems = TopViewController.NavigationItem.RightBarButtonItems;

        foreach (var button in buttonItems)
        {
            button.Image = button.Image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
            button.TintColor = UIColor.Clear;
        }
    }

推荐阅读