danitero

/Daniel Quintero Henao

About Daniel Quintero Henao

This author has not yet filled in any details.
So far Daniel Quintero Henao has created 2 blog entries.
5 08, 2015

[Xamarin.Forms] Renderers II: Cambiando las propiedades nativas desde XAML

By | Agosto 5th, 2015|Desarrollo de Software, Desarrollo Móvil|0 Comments

En el post anterior, aprendimos a modificar características nativas de un control de Xamarin Forms, cambiando el color y el texto de un Switch en su Renderer. En el Renderer de cada plataforma, le asignamos diferentes colores, y en el caso de Android, le asignamos los textos para cuando el Switch está encendido o apagado. Pero si lo que queremos es controlar los valores de esas características nativas desde nuestro proyecto portable, ya sea en XAML o en C#, debemos crear un control personalizado, en este caso que herede de Switch, y crear las propiedades respectivas para cambiar esos valores. En el proyecto portable Creamos una clase que herede de Switch. Yo la llamaré ExtendedSwitch. En ella creamos las propiedades que usaremos para cambiar las nativas de los controles. Para los que usan el patrón MVVM, las propiedades pueden ser usadas como enlace de datos (Bindings), pero para este ejemplo, las cambiaremos en tiempo de ejecución por code-behind, que es un poco más fácil de entender para los que no están familiarizados con MVVM. Las propiedades las llamaré: OnColor, para el color del fondo en iOS y Windows Phone. ThumbColor, para el color del Thumb en iOS y Android. [code language=”csharp” title=”ExtendedSwitch.cs”] public class ExtendedSwitch : Switch { public static readonly BindableProperty OnColorProperty = BindableProperty.Create<ExtendedSwitch, Color>(o => o.OnColor, default(Color)); public Color OnColor { get { return (Color)GetValue(OnColorProperty); } set { SetValue(OnColorProperty, value); } } public static readonly BindableProperty ThumbColorProperty = BindableProperty.Create<ExtendedSwitch, Color>(o => o.ThumbColor, default(Color)); public Color ThumbColor { get { return (Color)GetValue(ThumbColorProperty); } set { SetValue(ThumbColorProperty, value); } } } [/code] Y para usar este control personalizado desde el XAML, agregamos el namespace y ya podemos crearlo y asignarle valores desde ahí: […]

4 08, 2015

[Xamarin.Forms] Renderers I: Accediendo y modificando las características nativas de los controles

By | Agosto 4th, 2015|Desarrollo de Software, Desarrollo Móvil|0 Comments

Para inaugurar mi blog, empezaré con un serie de posts explicando los Renderers de Xamarin Forms y lo haré por lo más básico. Xamarin Forms nos permite cambiar muchas propiedades de sus controles. La mayoría son propiedades que comparten las diferentes plataformas, como el tamaño de una imagen, el texto o la imagen de un botón, el color fuente de un cuadro de texto, etc. Pero cuando queremos cambiar una propiedad de un control que solo está disponible en una plataforma en específico, debemos intervenir su renderer. Las clases llamadas Renderers, son las que Xamarin Forms usa para dibujar, pintar o renderizar los controles nativos en cada plataforma. Interviniendo estas clases, podremos acceder y modificar las características nativas de un control. Como ejemplo, modificaremos el control Switch para las tres plataformas (iOS, Windows Phone y Android). En el proyecto portable, crearemos una página y pondremos un control Switch dentro de ella, como lo solemos hacer. Y en cada uno de los proyectos de las plataformas, crearemos una clase que heredará, en este caso, de SwitchRenderer, el renderer que dibuja el Switch. En el proyecto Portable Creamos el control Switch. Yo lo haré con XAML: [code language=”xml” title=”MainPage.xaml” highlight=”4,5″] <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="DemoSwitchRenderer.MainPage"> <Switch VerticalOptions="Center" HorizontalOptions="Center" /> </ContentPage> [/code] […]