Xamarin.forms 使用XAML在NavigationPage中的OnPlatform

Xamarin.forms 使用XAML在NavigationPage中的OnPlatform,xamarin.forms,cross-platform,Xamarin.forms,Cross Platform,鉴于这段原始代码,我试图在Android上隐藏图标: <NavigationPage Title="Page" Icon="page_icon.png"> <x:Arguments> <views:MyPage /> </x:Arguments> </NavigationPage> 我尝试了许多不同的方式使用OnPlatform,但无法使其正常工作。以下是我尝试过的一些事情: <Navig

鉴于这段原始代码,我试图在Android上隐藏图标:

<NavigationPage Title="Page" Icon="page_icon.png">
    <x:Arguments>
        <views:MyPage />
    </x:Arguments>
</NavigationPage>  

我尝试了许多不同的方式使用OnPlatform,但无法使其正常工作。以下是我尝试过的一些事情:

<NavigationPage Title="Page">          
    <NavigationPage.Icon>     
        <OnPlatform x:TypeArguments="x:String">     
            <OnPlatform.iOS>page_icon.png</OnPlatform.iOS> 
            <OnPlatform.Android>{x:Null}</OnPlatform.Android>    
        </OnPlatform>    
    </NavigationPage.Icon>     
    <x:Arguments>
        <views:MyPage />
    </x:Arguments>
</NavigationPage> 

page_icon.png
{x:Null}
这产生了以下错误:

字典中不存在给定的键

我也试过:

<NavigationPage Title="Rater">
    <OnPlatform 
        x:Key="Icon"
        x:TypeArguments="x:String" 
        iOS="tab_feed.png"
        Android="{x:Null}"
    />
    <x:Arguments>
        <views:MyPage />
    </x:Arguments>
</NavigationPage>


运行,但iOS上没有显示图标。

不确定如何处理图标,这可能是一个单独的问题,但OnPlatform已重新设计。下面是您现在应该如何使用它:

<OnPlatform x:Key="SwitchOnColor"  x:TypeArguments="Color" >
    <On Platform="iOS,Android" >#0000FF</On>
    <On Platform="UWP">#FF0000</On>
</OnPlatform>

#0000FF
#FF0000

不确定如何处理图标,这可能是一个单独的问题,但OnPlatform已重新设计。下面是您现在应该如何使用它:

<OnPlatform x:Key="SwitchOnColor"  x:TypeArguments="Color" >
    <On Platform="iOS,Android" >#0000FF</On>
    <On Platform="UWP">#FF0000</On>
</OnPlatform>

#0000FF
#FF0000
(代表OP发布)

在Yuri的例子的帮助下,我能够创建在iOS和Android上工作的标记。就是这样

    <NavigationPage.Icon>
        <OnPlatform x:Key="SwitchOnIcon" x:TypeArguments="FileImageSource">
            <On Platform="iOS">tab_feed.png</On>
        </OnPlatform>
    </NavigationPage.Icon>  

tab_feed.png
(代表OP发布)

在Yuri的例子的帮助下,我能够创建在iOS和Android上工作的标记。就是这样

    <NavigationPage.Icon>
        <OnPlatform x:Key="SwitchOnIcon" x:TypeArguments="FileImageSource">
            <On Platform="iOS">tab_feed.png</On>
        </OnPlatform>
    </NavigationPage.Icon>  

tab_feed.png

谢谢。稍微调整一下你的例子,我就成功了。我将用答案修改我的问题。谢谢。稍微调整一下你的例子,我就成功了。我将使用解决方案修改我的问题。请不要在问题中编辑答案,也不要在标题中添加[已解决的]设备。相反,点击“回答你的问题”按钮并以这种方式添加答案。谢谢请不要在问题中编辑答案,也不要在标题中添加[已解决的]设备。相反,点击“回答你的问题”按钮并以这种方式添加答案。谢谢