如何使用OnPlatform Xamarin更改BackgroundColor

时间:2017-11-23 18:32:07

标签: c# xaml xamarin.ios xamarin.forms xamarin.android

我正在尝试根据其运行的设备更改条目的背景。 我尝试根据以下信息执行此操作:https://developer.xamarin.com/guides/xamarin-forms/xaml/passing-arguments/

并得到了这个:

        <Entry TextColor="White"
            x:Name="entryTop"
            HeightRequest="40"
            WidthRequest="150"
            RelativeLayout.XConstraint = "{ConstraintExpression Type=RelativeToParent,
                Property=Width,
                Factor=.48,
                Constant=10}"
            RelativeLayout.YConstraint = "{ConstraintExpression Type=RelativeToParent,
                Property=Height,
                Factor=0,
                Constant=5}" >
            <Entry.BackgroundColor>
                <OnPlatform x:TypeArguments="x:String">
                    <On Platform="Android" Value="Transparent" />
                    <On Platform="iOS" Value="white" />
                </OnPlatform>
            </Entry.BackgroundColor>
        </Entry>

当我尝试构建我的项目时,我收到此错误:没有为&#39; BackgroundColor&#39;找到属性,可绑定属性或事件,或者值和属性之间的类型不匹配。

我尝试使用颜色工厂方法和几个TypeArguments,但似乎无法获得正确的。

1 个答案:

答案 0 :(得分:1)

我找到了答案:

     <Entry.BackgroundColor>
         <OnPlatform x:TypeArguments="Color"
             Android="#5b5b5b"                 
             iOS="#fff">
         </OnPlatform>
     </Entry.BackgroundColor>

以这种方式使用时,TypeArgument Color仅接收十六进制值。它不适用于RGB或静态颜色(“白色”,“黑色”等)。我希望这会有所帮助。