SlideShare una empresa de Scribd logo
Custom Renderers Made Simple
Vicente Guzman
 Aspectos claves del desarrollo
 ¿Que es un Custom Renderer?
 ¿Cuándo son necesarios?
 ¿Por que crear un render?
Agenda
Rendy Del Rosario
 Creando un Custom Renderer paso a paso
 DEMO
 Ciclo de vida de un Custom Renderer
 Controles Nativos
 DEMO
Vicente G. Guzman Lucio
Senior Software Engineer
 luciomsp@geeks.ms
 @LucioMSP
Sobre mí
Aspectos claves del desarrollo móvil
Native User Interfaces Native API Access Native Performance
 ¿Puedo personalizar la apariencia o el comportamiento de un control existente?
 ¿Puedo utilizar controles nativos de cada plataforma con Xamarin.Forms?
 ¿Podemos crear o modificar elementos visuales de Xamarin.Forms?
Principales dudas…
¿Qué es un Custom Renderer?
Poderosa herramienta que nos permite
personalizar y crear nuevas controles.
Un Custom Renderer proporciona un
enfoque potente para personalizar la
apariencia y el comportamiento de los
controles Xamarin.Forms
Controles Nativos
Controles Nativos
 Elementos especificos de la plataforma
 Decoraciones de texto
 Sombras
 Bordes
¿Cuándo son necesarios?
Para utilizar controles nativos de cada plataforma
ó (visto desde otra perspectiva)
para crear una visualización específica para cada plataforma
Entonces…. ¿por qué crear un Renderer?
Rendy Del Rosario
Twitter: @rdelrosario
FB: RendyDelRosario
http://xamboy.com/
1-Crea un control custom de Xamarin.Forms
2-Crea el custom renderer del control por cada plataforma
3-Agrega el atributo ExportRenderer para especificar cual control usará este renderer
4-Consume el control en Xamarin.Forms
Creando un Custom Renderer paso a paso
1- Crea un control de Xamarin.Form
Crea una subclase del control de Xamarin Forms.
2- Crea el custom renderer del control por cada plataforma
2.1- Sobreescribe el método OnElementChanged del control nativo y escribe
dentro de este la lógica para personalizar el control.
2- Crea el custom renderer del control por cada plataforma
3- Agrega el atributo ExportRenderer para especificar cual control usará este renderer.
4- Consume el control customizado en Xamarin Forms
Agregar el NameSpace del control en tu XAML, con una variable (en este caso local)
Usa la variable : Nombre del control, para acceder al control
DEMO
Creando tu primer Control Custom
Ciclo de vida de un Custom Renderer
Este método se llama cuando el control de Xamarin.Forms es creado
Principales propiedades
- Acceso al control original de Forms
- Acceso al control nativo
 Un BindableProperty es un tipo especial de propiedad, donde el valor de la
propiedad es agregado al control. Esta puede ser accedida desde Xaml o
CodeBehind.
Propiedades Customizadas
DEMO
Agregar una propiedad a nuestro Renderer Actual
Controles Nativos
1- Crea tu control custom en el proyecto de Forms
2- Crea una subclase de la clase ViewRenderer <T1, T2> que procesa el control
personalizado.
3- Sobreescribe el método OnElementChanged y Asigna el control Nativo
4- Agrega el atributo ExportRenderer para especificar cual control usará este
renderer.
5- Consume el control en Xamarin.Forms
Creando un Control nativo Paso a Paso
1- Crea tu control custom en el proyecto de Forms
2- Crea una subclase de la clase ViewRenderer <T1, T2> que procesa el
control personalizado por plataforma
3- Sobreescribe el método OnElementChanged y Asigna el control Nativo
4- Agrega el atributo ExportRenderer para especificar cual
control usará este renderer
5- Consume el control en Xamarin.Forms
XAML
CODE
BEHIND
DEMO / Creación de un renderer nativo de un dibujador
Buenas Prácticas
 Xamarin- Documentación oficial
https://developer.xamarin.com/guides/xamarin-forms/application-
fundamentals/custom-renderer/
 Xamarin University: Custom Renderers in Xamarin.Forms
https://www.youtube.com/watch?v=55r1wHdOLBo
Referencias recomendadas
Gracias! Preguntas?
Vicente Guzman
luciomsp@geeks.ms
vicenteguzman.mx
@LucioMSP
Rendy Del Rosario
FB: RendyDelRosario
http://xamboy.com/
@rdelrosario

Más contenido relacionado

Similar a Custom Renderers Made Simple

Introducción a Xamarin.Forms
Introducción a Xamarin.FormsIntroducción a Xamarin.Forms
Introducción a Xamarin.Forms
Javier Suárez Ruiz
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.Forms
Javier Suárez Ruiz
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas Xamarin
Javier Suárez Ruiz
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
Javier Suárez Ruiz
 
6.- DynaForms Avanzados v3.pptx
6.- DynaForms Avanzados v3.pptx6.- DynaForms Avanzados v3.pptx
6.- DynaForms Avanzados v3.pptx
MariaJoseRobayo
 
Windows.forms.ejercicios
Windows.forms.ejerciciosWindows.forms.ejercicios
Windows.forms.ejercicios
CHRISTIAN ASENCIO
 
Xamarin forms en el mundo real
Xamarin forms en el mundo realXamarin forms en el mundo real
Xamarin forms en el mundo real
Josué Yeray Julián Ferreiro
 
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfIntroduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
EliasChoque14
 
Introducción a Live XAML
Introducción a Live XAMLIntroducción a Live XAML
Introducción a Live XAML
Vicente Gerardo Guzman Lucio
 
INFOSAN VISUAL BASIC
INFOSAN VISUAL BASICINFOSAN VISUAL BASIC
INFOSAN VISUAL BASIC
FRANCIACOCO
 
Vb
VbVb
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosDesymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Javier Eguiluz
 
.NET Day Guatemala
.NET Day Guatemala.NET Day Guatemala
.NET Day Guatemala
Leomaris Reyes
 
primera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptxprimera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptx
TIRZOANTONIOMEDINACA
 
Women Who Code Bogota: Introduction to Xamarin Forms
Women Who Code Bogota: Introduction to Xamarin FormsWomen Who Code Bogota: Introduction to Xamarin Forms
Women Who Code Bogota: Introduction to Xamarin Forms
Leomaris Reyes
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
Javier Suárez Ruiz
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentos
redtacna
 
Fundamentos vb
Fundamentos vbFundamentos vb
Fundamentos vb
valerin01
 
Dce2 introduccion win_forms
Dce2 introduccion win_formsDce2 introduccion win_forms
Dce2 introduccion win_forms
guest85b8e5a
 
Introduccion a Windows Form
Introduccion a Windows FormIntroduccion a Windows Form
Introduccion a Windows Form
Diomedes Ignacio Domínguez Ureña
 

Similar a Custom Renderers Made Simple (20)

Introducción a Xamarin.Forms
Introducción a Xamarin.FormsIntroducción a Xamarin.Forms
Introducción a Xamarin.Forms
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.Forms
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas Xamarin
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
6.- DynaForms Avanzados v3.pptx
6.- DynaForms Avanzados v3.pptx6.- DynaForms Avanzados v3.pptx
6.- DynaForms Avanzados v3.pptx
 
Windows.forms.ejercicios
Windows.forms.ejerciciosWindows.forms.ejercicios
Windows.forms.ejercicios
 
Xamarin forms en el mundo real
Xamarin forms en el mundo realXamarin forms en el mundo real
Xamarin forms en el mundo real
 
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfIntroduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
 
Introducción a Live XAML
Introducción a Live XAMLIntroducción a Live XAML
Introducción a Live XAML
 
INFOSAN VISUAL BASIC
INFOSAN VISUAL BASICINFOSAN VISUAL BASIC
INFOSAN VISUAL BASIC
 
Vb
VbVb
Vb
 
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosDesymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
 
.NET Day Guatemala
.NET Day Guatemala.NET Day Guatemala
.NET Day Guatemala
 
primera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptxprimera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptx
 
Women Who Code Bogota: Introduction to Xamarin Forms
Women Who Code Bogota: Introduction to Xamarin FormsWomen Who Code Bogota: Introduction to Xamarin Forms
Women Who Code Bogota: Introduction to Xamarin Forms
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentos
 
Fundamentos vb
Fundamentos vbFundamentos vb
Fundamentos vb
 
Dce2 introduccion win_forms
Dce2 introduccion win_formsDce2 introduccion win_forms
Dce2 introduccion win_forms
 
Introduccion a Windows Form
Introduccion a Windows FormIntroduccion a Windows Form
Introduccion a Windows Form
 

Más de Vicente Gerardo Guzman Lucio

GPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power AutomateGPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power Automate
Vicente Gerardo Guzman Lucio
 
Introducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptxIntroducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptx
Vicente Gerardo Guzman Lucio
 
Creando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdfCreando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdf
Vicente Gerardo Guzman Lucio
 
ChatGPT & Alexa.pptx
ChatGPT & Alexa.pptxChatGPT & Alexa.pptx
ChatGPT & Alexa.pptx
Vicente Gerardo Guzman Lucio
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Vicente Gerardo Guzman Lucio
 
Conectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa SkillConectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa Skill
Vicente Gerardo Guzman Lucio
 
Azure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web AssemblyAzure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web Assembly
Vicente Gerardo Guzman Lucio
 
Desarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa SkillsDesarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa Skills
Vicente Gerardo Guzman Lucio
 
Blazor vs VUE
Blazor vs VUEBlazor vs VUE
Introducción a Blazor
Introducción a BlazorIntroducción a Blazor
Introducción a Blazor
Vicente Gerardo Guzman Lucio
 
Infraestructura como Código en Azure
Infraestructura como Código en AzureInfraestructura como Código en Azure
Infraestructura como Código en Azure
Vicente Gerardo Guzman Lucio
 
Diseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon AlexaDiseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon Alexa
Vicente Gerardo Guzman Lucio
 
Alexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS LambdaAlexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS Lambda
Vicente Gerardo Guzman Lucio
 
Skills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros PasosSkills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros Pasos
Vicente Gerardo Guzman Lucio
 
¿Qué es la Nube?
¿Qué es la Nube?¿Qué es la Nube?
¿Qué es la Nube?
Vicente Gerardo Guzman Lucio
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en Alexa
Vicente Gerardo Guzman Lucio
 
La era de los Chatbots
La era de los ChatbotsLa era de los Chatbots
La era de los Chatbots
Vicente Gerardo Guzman Lucio
 
Android 64x con Xamarin.Forms
Android 64x con Xamarin.FormsAndroid 64x con Xamarin.Forms
Android 64x con Xamarin.Forms
Vicente Gerardo Guzman Lucio
 
Creando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTubeCreando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTube
Vicente Gerardo Guzman Lucio
 
Alexa Skill en 5 pasos
Alexa Skill en 5 pasosAlexa Skill en 5 pasos
Alexa Skill en 5 pasos
Vicente Gerardo Guzman Lucio
 

Más de Vicente Gerardo Guzman Lucio (20)

GPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power AutomateGPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power Automate
 
Introducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptxIntroducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptx
 
Creando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdfCreando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdf
 
ChatGPT & Alexa.pptx
ChatGPT & Alexa.pptxChatGPT & Alexa.pptx
ChatGPT & Alexa.pptx
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Conectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa SkillConectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa Skill
 
Azure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web AssemblyAzure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web Assembly
 
Desarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa SkillsDesarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa Skills
 
Blazor vs VUE
Blazor vs VUEBlazor vs VUE
Blazor vs VUE
 
Introducción a Blazor
Introducción a BlazorIntroducción a Blazor
Introducción a Blazor
 
Infraestructura como Código en Azure
Infraestructura como Código en AzureInfraestructura como Código en Azure
Infraestructura como Código en Azure
 
Diseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon AlexaDiseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon Alexa
 
Alexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS LambdaAlexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS Lambda
 
Skills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros PasosSkills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros Pasos
 
¿Qué es la Nube?
¿Qué es la Nube?¿Qué es la Nube?
¿Qué es la Nube?
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en Alexa
 
La era de los Chatbots
La era de los ChatbotsLa era de los Chatbots
La era de los Chatbots
 
Android 64x con Xamarin.Forms
Android 64x con Xamarin.FormsAndroid 64x con Xamarin.Forms
Android 64x con Xamarin.Forms
 
Creando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTubeCreando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTube
 
Alexa Skill en 5 pasos
Alexa Skill en 5 pasosAlexa Skill en 5 pasos
Alexa Skill en 5 pasos
 

Último

primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
JhenryHuisa1
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
KatiuskaDominguez2
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 

Último (9)

primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 

Custom Renderers Made Simple

  • 2. Vicente Guzman  Aspectos claves del desarrollo  ¿Que es un Custom Renderer?  ¿Cuándo son necesarios?  ¿Por que crear un render? Agenda Rendy Del Rosario  Creando un Custom Renderer paso a paso  DEMO  Ciclo de vida de un Custom Renderer  Controles Nativos  DEMO
  • 3. Vicente G. Guzman Lucio Senior Software Engineer  luciomsp@geeks.ms  @LucioMSP Sobre mí
  • 4. Aspectos claves del desarrollo móvil Native User Interfaces Native API Access Native Performance
  • 5.  ¿Puedo personalizar la apariencia o el comportamiento de un control existente?  ¿Puedo utilizar controles nativos de cada plataforma con Xamarin.Forms?  ¿Podemos crear o modificar elementos visuales de Xamarin.Forms? Principales dudas…
  • 6. ¿Qué es un Custom Renderer? Poderosa herramienta que nos permite personalizar y crear nuevas controles. Un Custom Renderer proporciona un enfoque potente para personalizar la apariencia y el comportamiento de los controles Xamarin.Forms
  • 9.  Elementos especificos de la plataforma  Decoraciones de texto  Sombras  Bordes ¿Cuándo son necesarios?
  • 10. Para utilizar controles nativos de cada plataforma ó (visto desde otra perspectiva) para crear una visualización específica para cada plataforma Entonces…. ¿por qué crear un Renderer?
  • 11. Rendy Del Rosario Twitter: @rdelrosario FB: RendyDelRosario http://xamboy.com/
  • 12. 1-Crea un control custom de Xamarin.Forms 2-Crea el custom renderer del control por cada plataforma 3-Agrega el atributo ExportRenderer para especificar cual control usará este renderer 4-Consume el control en Xamarin.Forms Creando un Custom Renderer paso a paso
  • 13. 1- Crea un control de Xamarin.Form Crea una subclase del control de Xamarin Forms.
  • 14. 2- Crea el custom renderer del control por cada plataforma
  • 15. 2.1- Sobreescribe el método OnElementChanged del control nativo y escribe dentro de este la lógica para personalizar el control. 2- Crea el custom renderer del control por cada plataforma
  • 16. 3- Agrega el atributo ExportRenderer para especificar cual control usará este renderer.
  • 17. 4- Consume el control customizado en Xamarin Forms Agregar el NameSpace del control en tu XAML, con una variable (en este caso local) Usa la variable : Nombre del control, para acceder al control
  • 18. DEMO Creando tu primer Control Custom
  • 19. Ciclo de vida de un Custom Renderer Este método se llama cuando el control de Xamarin.Forms es creado
  • 20. Principales propiedades - Acceso al control original de Forms - Acceso al control nativo
  • 21.  Un BindableProperty es un tipo especial de propiedad, donde el valor de la propiedad es agregado al control. Esta puede ser accedida desde Xaml o CodeBehind. Propiedades Customizadas
  • 22. DEMO Agregar una propiedad a nuestro Renderer Actual
  • 24. 1- Crea tu control custom en el proyecto de Forms 2- Crea una subclase de la clase ViewRenderer <T1, T2> que procesa el control personalizado. 3- Sobreescribe el método OnElementChanged y Asigna el control Nativo 4- Agrega el atributo ExportRenderer para especificar cual control usará este renderer. 5- Consume el control en Xamarin.Forms Creando un Control nativo Paso a Paso
  • 25. 1- Crea tu control custom en el proyecto de Forms
  • 26. 2- Crea una subclase de la clase ViewRenderer <T1, T2> que procesa el control personalizado por plataforma
  • 27. 3- Sobreescribe el método OnElementChanged y Asigna el control Nativo
  • 28. 4- Agrega el atributo ExportRenderer para especificar cual control usará este renderer
  • 29. 5- Consume el control en Xamarin.Forms XAML CODE BEHIND
  • 30. DEMO / Creación de un renderer nativo de un dibujador
  • 32.  Xamarin- Documentación oficial https://developer.xamarin.com/guides/xamarin-forms/application- fundamentals/custom-renderer/  Xamarin University: Custom Renderers in Xamarin.Forms https://www.youtube.com/watch?v=55r1wHdOLBo Referencias recomendadas
  • 33. Gracias! Preguntas? Vicente Guzman luciomsp@geeks.ms vicenteguzman.mx @LucioMSP Rendy Del Rosario FB: RendyDelRosario http://xamboy.com/ @rdelrosario

Notas del editor

  1. Xamarin.Forms es un toolkit que crea una abstracción sobre la interfaz de usuario de Android, iOS y Windows Phone permitiendo desarrollarla una única vez con código C# o Extensible Application Markup Language (XAML). Permite crear facilmente y con rapidez interfaces de usuario nativas compartidas donde  cada elemento visual en Xamarin.Forms son mapeados a elementos nativos y comportamientos propios de cada plataforma. Preguntas…. En esta sesion vamos a ver que podemos crear nuestras propias abstracciones ya sea modificando alguna de las existentes o partiendo desde prácticamente cero.