【问题标题】:OnPlatform in NavigationPage using XAML使用 XAML 的 NavigationPage 中的 OnPlatform
【发布时间】:2017-10-27 05:14:22
【问题描述】:

鉴于此原始代码,我试图在 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> 

这产生了错误:

给定的键不在字典中。

我也试过这个:

<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 上没有显示图标

【问题讨论】:

  • 请不要将答案编辑到您的问题中,也不要将 [已解决] 设备添加到标题中。相反,单击“回答您的问题”按钮并以这种方式添加答案。谢谢!

标签: xamarin.forms cross-platform


【解决方案1】:

(代表 OP 发布)。

借助 Yuri S 的示例,我能够创建在 iOS 和 Android 上按预期工作的标记。就是这样。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢。稍微调整一下你的例子,我让它工作了。我将用解决方案修改我的问题。
    猜你喜欢
    • 1970-01-01
    • 2017-02-09
    • 2015-04-14
    • 2017-12-14
    • 1970-01-01
    • 2019-03-25
    • 2021-06-05
    • 2017-06-05
    • 1970-01-01
    相关资源
    最近更新 更多