我在全球资源中使用此颜色(在app.xaml中)
<Color x:Key="MyColor" x:FactoryMethod="FromHex">
<x:Arguments>
<x:String>#ffffff</x:String>
</x:Arguments>
</Color>
Android和Windows Phone需要不同的颜色。我试过这段代码:
<Color x:Key="MyColor" x:FactoryMethod="FromHex">
<x:Arguments>
<OnPlatform x:TypeArguments="x:String"
Android="#006ABB"
WindowsPhone="#ffffff" />
<x:String></x:String>
</x:Arguments>
</Color>
但它不起作用。告诉我 - 如何在代码中添加它。有可能吗?
答案 0 :(得分:1)
您可以在App.xaml
中执行此操作,无需转到代码。只需要一点点不同的方法。这是代码
<Application.Resources>
<ResourceDictionary>
<OnPlatform
x:Key="MyColor"
x:TypeArguments="Color"
Android="#006ABB"
iOS="#006A00"
WinPhone="#ffffff"/>
</ResourceDictionary>
</Application.Resources>
这之所以有效,是因为OnPlatform
泛型类定义了隐式会话运算符,它可以将每个OnPlatform
对象转换为其入站通用T
类。像这样的东西
public static implicit operator T(OnPlatform<T> onPlatform)