c# - Recursos compartidos XAML
css cross-platform (1)
Como dice el error, el Thickness
no es un Style
. Cambiarlo a:
<Application.Resources>
<ResourceDictionary>
<OnPlatform x:Key="MyPadding"
x:TypeArguments="Thickness"
iOS="0, 20, 0, 0"
Android="0, 0, 0, 0"/>
<Style
x:Key="pageStyle"
TargetType="ContentPage">
<Setter
Property="Padding"
Value="{StaticResource MyPadding}"/>
</Style>
<Style
x:Key="labelGreen"
TargetType="Entry">
<Setter
Property="TextColor"
Value="Green"/>
</Style>
</ResourceDictionary>
</Application.Resources>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.LoginScreen"
Style="{StaticResource pageStyle}">
O
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.LoginScreen"
Padding="{StaticResource MyPadding}">
Estoy tratando de implementar el equivalente XAML de estilos CSS. Quiero crear un diseño personalizado para ContentPage que pueda usar en todas las páginas de mi aplicación, y tendrá un valor diferente para cada plataforma.
Específicamente, estoy comenzando con el relleno personalizado: estoy intentando colocar este código en mi archivo App.xaml:
<Application.Resources>
<ResourceDictionary>
<OnPlatform x:Key="MyPadding"
x:TypeArguments="Thickness"
iOS="0, 20, 0, 0"
Android="0, 0, 0, 0"/>
<Style
x:Key="labelGreen"
TargetType="Entry">
<Setter
Property="TextColor"
Value="Green"/>
</Style>
</ResourceDictionary>
</Application.Resources>
En una página de contenido separada, estoy haciendo lo siguiente, pero no funciona:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.LoginScreen"
Style="{DynamicResource MyPadding}"
>
El estilo de entrada personalizado funciona bien. Pero el relleno no. Me sale el error: "SetValue: No se puede convertir Xamarin.Forms.OnPlatform`1 [Xamarin.Forms.Thickness] para escribir ''Xamarin.Forms.Style''"
¿Qué estoy haciendo mal?