onplatform c# xaml xamarin xamarin.forms

c# - ¿Puedo establecer vistas específicas del dispositivo usando Device.OnPlatform en Xaml?



platform thickness xamarin (1)

Casi lo tienes. Solo necesita usar ContentView para establecer su propiedad de Contenido en su recurso Estático.

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="XFApp3.Page1"> <ContentPage.Resources> <ResourceDictionary> <OnPlatform x:Key=”NumericTextBox” x:TypeArguments=”View”> <OnPlatform.iOS><sf:NumericTextBox/></OnPlatform.iOS> <OnPlatform.Android><sf:NumericTextBox/></OnPlatform.Android> <OnPlatform.WinPhone><Entry/></OnPlatform.WinPhone> </OnPlatform> </ResourceDictionary> </ContentPage.Resources> <!-- That''s the line you are missing --> <ContentView Content="{StaticResource NumericTextBox}" ></ContentView> </ContentPage>

Y estás listo para ingresar algunos números.

Estoy tratando de mostrar vistas específicas del dispositivo en diferentes plataformas en Xaml.

Al mirar este enlace , puedo ver que puedo establecer propiedades usando Device.OnPlatform en Xaml, así:

<ContentPage.Resources> <ResourceDictionary> <OnPlatform x:Key=”standardFont” x:TypeArguments=”Font”> <OnPlatform.iOS>12</OnPlatform.iOS> <OnPlatform.Android>12</OnPlatform.Android> <OnPlatform.WinPhone>18</OnPlatform.WinPhone> </OnPlatform> </ResourceDictionary> </ContentPage.Resources>

pero me gustaría establecer Vistas en cada plataforma como esta:

<ContentPage.Resources> <ResourceDictionary> <OnPlatform x:Key=”NumericTextBox” x:TypeArguments=”View”> <OnPlatform.iOS><sf:NumericTextBox/></OnPlatform.iOS> <OnPlatform.Android><sf:NumericTextBox/></OnPlatform.Android> <OnPlatform.WinPhone><Entry/></OnPlatform.WinPhone> </OnPlatform> </ResourceDictionary> </ContentPage.Resources>

La razón por la que necesito esto es porque Syncfusion NumericTextBox no funciona en Windows (he informado este error, pero esta es una solución)

es posible?

PD. Sé de procesadores personalizados, pero en este caso porque ya hay un procesador personalizado para el cuadro de texto numérico Syncfusion no puedo usar esta técnica