c# css xaml cross-platform xamarin.forms

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?