【问题标题】:Xamarin Forms Invalid property path syntax in Xaml when using OnPlatform extensionXamarin Forms 使用 OnPlatform 扩展时 Xaml 中的属性路径语法无效
【发布时间】:2021-06-05 17:54:08
【问题描述】:

我正在使用以下语法来确定 Xamarin Forms 内容页面中的属性设置:

FontSize="{OnPlatform Android=64, iOS=32}"

它工作正常,但我不得不重新安装 Visual Studio。重新安装后,使用此标记的每个内容页面现在都会显示错误:XLS0517 Invalid property path syntax。

有趣的是它只发生在值是数字时(int、double 等...) 如果我在单引号内放置一个字符串值,错误就会消失。但是 32 的字符串不适用于 HeightRequest。

【问题讨论】:

  • 我找到了一种解决方法,通过将 UWP 添加到具有星号或空单引号值的扩展名,错误就消失了。 (例如:FontSize=''{OnPlatform UWP='*', Android=64, iOS=32}")由于我不是在创建 UWP 应用程序,所以这不会造成任何伤害,但似乎有些杂乱无章。
  • 当我在 StackLayout 中从 Xamarin Forms 3 升级到 5 时看到了这一点,我使用它来设置 Padding。添加 UWP='*' 也让它消失了。
  • 我遇到了完全相同的问题(例如:
  • 我已经为这个问题记录了一个 VS 的错误here。请在 Microsoft 上提出此问题以引起更多关注。

标签: c# visual-studio xaml xamarin.forms


【解决方案1】:

谢谢老哥……这对我有用

作者:Margin="{OnPlatform Android='0,0,15,0', iOS='0'}"

收件人:Margin="{OnPlatform UWP= '*', Android='0,0,15,0', iOS='0'}"

【讨论】:

    【解决方案2】:

    ms docs 中的更多详细信息和下面的示例:

    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 ....>
    
        <StackLayout>
            <Label Text="test" FontSize="{x:OnPlatform iOS='14', Android='12'}" />
        </StackLayout>
    </ContentPage>
    

    【讨论】:

      【解决方案3】:

      我通过在元素上添加 UWP='*' 解决了这个问题。

      【讨论】:

        猜你喜欢
        • 2021-06-26
        • 2017-02-09
        • 2017-06-05
        • 2015-04-14
        • 2017-12-14
        • 2019-03-25
        • 2015-07-01
        • 1970-01-01
        • 2018-04-16
        相关资源
        最近更新 更多