SlideShare una empresa de Scribd logo
Interfaces adaptativas
en Windows 10
Windows 10 Preview
Javier Suárez
CartujaDotNet
Javier Suárez Ruiz
XAML Developer Bravent
Microsoft MVP Windows Platform
Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
CartujaDotNet
Agenda
Comenzamos
1. El viaje de la convergencia
2.Universal App Platform
Mejoras en estados visuales
1. Estrategias para interfaces adaptativas
2.XAML Views por dispositivo
3.El control Relative Panel
4.Adaptive Triggers
Vistas por familias de
dispositivos
Comenzamos!
CartujaDotNet
Mayor facilidad para
estar al día
Plataforma de Apps
y Core unificado
El viaje de la convergencia
Windows 10
Convergencia a
nivel de kernel
Convergencia en
el modelo de
App
CartujaDotNet
Universal Windows Platform
Plataforma de Desarrollo
unificada
Un único paquete
Código adaptativo
XboxIoT
Universal
Windows Platform
Core APIs
La historia de las Apps Windows
adaptativas
CartujaDotNet
Opciones de diseño para adaptar la
interfaz
Estrategias de diseño
Layouts flexibles con tamaños relativos
Vistas XAML por dispositivo
Archivos XAML separados con código compartido
Estados visuales XAML
Utilizados para escalar y gestionar orientaciones
CartujaDotNet
CartujaDotNet
Los usuarios adoran las Apps que
son geniales en cada uno de sus
dispositivos
¿Qué tenemos “gratis”?
CartujaDotNet
Mejoras en Visual States
CartujaDotNet
Visual State setters & triggers
Setters permite establecer propiedades simples
La mayoría de propiedades no necesitan animación
Triggers declarados cuando se aplica un estado
No necesitamos gestionar eventos en el code-behind
<VisualState x:Name="wideState">
<VisualState.Setters>
<Setter Target="myPanel.Orientation" Value="Horizontal" />
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600"/>
</VisualState.StateTriggers>
</VisualState>
CartujaDotNet
Tipos de trigger
MinWindowWidth
MinWindowHeight
“Cualquier cosa por encima de este valor”
Los valores se especifican en píxeles
DEMO
Visual State Triggers
3:50
CartujaDotNet
…cuando algo en la ViewModel cambia
…cuando cambia algun valor
…dependiendo del tamaño de la pantalla
Bien, entonces…
¿Visual State Triggers Custom?
CartujaDotNet
public class InputTypeTrigger : StateTriggerBase
{
private FrameworkElement _targetElement;
private PointerDeviceType _lastPointerType, _triggerPointerType;
public FrameworkElement TargetElement
{
get { return _targetElement; }
set
{
_targetElement = value;
_targetElement.AddHandler(FrameworkElement.PointerPressedEvent, new
PointerEventHandler(_targetElement_PointerPressed), true);
Custom Trigger
CartujaDotNet
xmlns:triggers="using:StravaMobile.UAP.Triggers"
<VisualStateGroup x:Name="InputTypeStates">
<VisualState>
<VisualState.StateTriggers>
<triggers:InputTypeTrigger TargetElement="{x:Bind ActivityList}"
PointerType="Touch" />
<triggers:InputTypeTrigger TargetElement="{x:Bind ActivityList}"
PointerType="Pen" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="GoToTopButton.Visibility" Value="Visible" />
Uso de Custom Trigger
CartujaDotNet
La lógica es custom
Se pueden combiner varios Triggers
Se pueden utilizer otras opciones dentro del Trigger
como x:Defer
https://github.com/Microsoft/Windows-universal-
samples/tree/master/xaml_statetriggers
Crear Custom Triggers
DEMO
Custom Triggers
3:50
Nuevos controles XAML
CartujaDotNet
Relative Panel es un control de Layout XAML. Posiciona
los elementos estableciendo relaciones entre ellos.
Introducción al panel Relative Panel
Controles de Layout en Windows XAML
Grid
Stack
Panel
Canvas
Scroll
Viewer
Border View Box
Wrap
Grid
Relative
Panel
CartujaDotNet
Relative Panel
Adaptativo
Relativo al Panel
Relativo a controles “hermanos”
Simplifica nuestro XAML
Simplifica el árbol visual
Simplifica los estados visuales
CartujaDotNet
Alineación con el Panel
<RelativePanel>
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.AlignHorizontalCenterWithPanel="True"
RelativePanel.AlignVerticalCenterWithPanel="True" />
<Rectangle x:Name="BlueRect"
Height="100" Width="200" Fill="Blue" />
</RelativePanel>
CartujaDotNet
Opciones de posición con respecto al Panel
<Rectangle Height="100" Width="100" Fill="Red"
RelativePanel.AlignLeftWithPanel="True" (default)
RelativePanel.AlignRightWithPanel="True"
RelativePanel.AlignTopWithPanel="True" (default)
RelativePanel.AlignBottomWithPanel="True"
RelativePanel.CenterInPanelHorizontally="True"
RelativePanel.CenterInPanelVertically="True" />
CartujaDotNet
Alinearse con “hermanos” (derecha)
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width="100" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.RightOf="BlueRect"
RelativePanel.AlignVerticalCenterWith="BlueRect" />
</RelativePanel>
CartujaDotNet
Alinearse con “hermanos” (encima,
derecha)
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width="100" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.Below="BlueRect"
RelativePanel.AlignRightWith="BlueRect" />
</RelativePanel>
CartujaDotNet
Alinearse con “hermanos” (debajo,
centro)
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width="100" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.Below="BlueRect"
RelativePanel.AlignHorizontalCenterWith="BlueRect" />
</RelativePanel>
CartujaDotNet
Alinearse con “hermanos” (debajo, izquierda)
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width="100" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.Below="BlueRect"
RelativePanel.AlignLeftWith="BlueRect" />
</RelativePanel>
CartujaDotNet
Opciones de posicionamiento entre “hermanos”
<Rectangle Height="100" Width="100" Fill="Red"
RelativePanel.Above="BlueRect"
RelativePanel.RightOf="BlueRect"
RelativePanel.Below="BlueRect"
RelativePanel.RightOf="BlueRect" />
CartujaDotNet
Opciones de alineación entre “hermanos”
<Rectangle Height="100" Width="100" Fill="Red"
RelativePanel.AlignTopWith="BlueRect"
RelativePanel.AlignRightWith="BlueRect"
RelativePanel.AlignBottomWith="BlueRect"
RelativePanel.AlignLeftWith="BlueRect"
RelativePanel.AlignHorizontalCenterWith="BlueRect"
RelativePanel.AlignVerticalCenterWith="BlueRect" />
DEMODEMODEMO
Relative Panel
CartujaDotNet
Simplificando el árbol visual
<Grid>
<StackPanel>
<StackPanel>
<TextBlock />
<TextBlock />
</StackPanel>
<StackPanel>
<TextBlock />
<TextBlock />
</StackPanel>
</StackPanel>
</Grid>
<RelativePanel>
<TextBlock />
<TextBlock />
<TextBlock />
<TextBlock />
</RelativePanel >
El control Relative Panel es una de
las claves para tus estrategias a la
hora de adaptar la UI
El control SplitView
CartujaDotNet
SplitView
CartujaDotNet
Comportamiento
Your Windows App
CartujaDotNet
Segoe MDL2 Assets
CartujaDotNet
SplitView.Pane
<SplitView>
<SplitView.Pane>
<StackPanel>
<RadioButton />
<RadioButton />
</StackPanel>
</SplitView.Pane>
</SplitView>
CartujaDotNet
SplitView.Content
<SplitView>
<SplitView.Pane />
<SplitView.Content>
<Frame/>
</SplitView.Content>
</SplitView>
CartujaDotNet
Propiedades del SplitView
<SplitView
IsPaneOpen="False"
CompactPaneLength="150"
OpenPaneLength="50"
Placement="Right|Left"
PaneDisplayMode="CompactInline">
<SplitView.Pane />
<SplitView.Content />
</SplitView>
CartujaDotNet
SplitView.PaneDisplayMode
SplitView.IsPaneOpen
"True"
SplitView.IsPaneOpen
"False"
Inline
Overlay
Compact Inline
Compact Overlay
DEMODEMO
SplitView
CartujaDotNet
¿Qué pasa si…?
SplitView vs. Pivot
Comandos en la
parte superior VS
inferior
Vistas por familia de dispositivo
CartujaDotNet
Cuando ApiInformation no es
suficiente
Utilizamos familias de dispositivos como
Xbox y Surface Hub
Adapta la experiencia de usuario
CartujaDotNet
Debemos determinar escenarios donde sea necesario
Creamos vistas específicas en estos casos
Cargamos la vista adecuada en consecuencia
Adapta tu vista
//Get the diagonal size of the integrated display
var dsc = new DisplaySizeHelper.DisplaySizeClass();
double _actualSizeInInches = dsc.GetDisplaySizeInInches();
//Guidance: If the diagonal size is <= 7" use the OneHanded optimized view
if ( _actualSizeInInches >0 && _actualSizeInInches <= ONEHANDEDSIZE)
{
rootFrame.Navigate(typeof(MainPage_OneHanded), e.Arguments);
}
else
{
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
DEMODEMODEMO
Vistas por familia de
dispositivo
CartujaDotNet
Preguntas y respuestas.
¿Dudas?
&
Interfaces adaptativas en Windows
10
Windows 10 Preview
Javier Suárez

Más contenido relacionado

PPTX
Windows 10: One SDK to rule them all
PPTX
Reconnect(); Sevilla - Universal Windows Platform
PPTX
Windows 10: Hel10 World! - Novedades XAML
PPTX
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
PPTX
Taller Windows 10 TLP Innova
PPTX
Introducción al desarrollo de Apps en Windows 10
PPTX
Reconnect(); Sevilla - Keynote
PPTX
Extendiendo Xamarin.Forms
Windows 10: One SDK to rule them all
Reconnect(); Sevilla - Universal Windows Platform
Windows 10: Hel10 World! - Novedades XAML
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
Taller Windows 10 TLP Innova
Introducción al desarrollo de Apps en Windows 10
Reconnect(); Sevilla - Keynote
Extendiendo Xamarin.Forms

La actualidad más candente (20)

PPTX
Windows 10: Novedades en XAML
PPTX
Novedades en XAML
PPTX
Novedades de Xamarin 4
PPTX
Windows 10 Developer Readiness. Interfaces Adaptativas
PPTX
Tus aplicaciones en pantalla grande con Xbox One
PPTX
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
PPTX
Novedades en Visual Studio Online
PPTX
Desktop App Converter
PPTX
Reconnect(); Sevilla - Introducción a Xamarin 4
PPTX
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
PPTX
WinObjC: Windows Bridge para iOS
PPTX
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
PPTX
Interfaces nativas Cross-Platform con Xamarin.Forms
PPTX
Integración Continua con Apps Xamarin
PPTX
Servicios Xamarin
PPTX
Adaptando Apps Xamarin.Forms a tabletas
PPTX
Xamarin REvolve 2016
PPTX
Introducción a Xamarin utilizando MVVMCross
PPTX
Herramientas para el desarrollo de Apps Universales
PPTX
Introducción a Xamarin
Windows 10: Novedades en XAML
Novedades en XAML
Novedades de Xamarin 4
Windows 10 Developer Readiness. Interfaces Adaptativas
Tus aplicaciones en pantalla grande con Xbox One
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Novedades en Visual Studio Online
Desktop App Converter
Reconnect(); Sevilla - Introducción a Xamarin 4
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
WinObjC: Windows Bridge para iOS
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.Forms
Integración Continua con Apps Xamarin
Servicios Xamarin
Adaptando Apps Xamarin.Forms a tabletas
Xamarin REvolve 2016
Introducción a Xamarin utilizando MVVMCross
Herramientas para el desarrollo de Apps Universales
Introducción a Xamarin
Publicidad

Destacado (7)

PPTX
Universal Windows Platform Bridges
PPTX
Creando Aplicaciones UWP para Xbox One
PPTX
Xamarin for Everyone
PPTX
Regreso al futuro, la proposición indecente de Microsoft
PPTX
Talks4Kids 2015 - Consejos Heisenberg para conseguir Apps Windows 10 con 99% ...
PPTX
[Evento WPSUG] Universal Windows Platform Bridges
PPTX
Microsoft Tech Summit - Taller Xamarin
Universal Windows Platform Bridges
Creando Aplicaciones UWP para Xbox One
Xamarin for Everyone
Regreso al futuro, la proposición indecente de Microsoft
Talks4Kids 2015 - Consejos Heisenberg para conseguir Apps Windows 10 con 99% ...
[Evento WPSUG] Universal Windows Platform Bridges
Microsoft Tech Summit - Taller Xamarin
Publicidad

Similar a Interfaces Adaptativas en Windows 10 (11)

PPTX
Introducción al desarrollo de Apps en Windows 10
PPTX
Introducción a Windows 10
PPTX
Introducción a Windows 10
PDF
Windows 10 universal apps
PPTX
Techdencias windows 10 diseño de aplicaciones universales
PPTX
New controls in Windows 10
PPSX
Diseño de Interfaces Mediante .NET
PDF
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
PDF
Tutorial de Aplicaciones para Windows Phone 7.1 Controles
PDF
Tutorial de Windows Phone 7.1 Basico
PPTX
Computo visula basic
Introducción al desarrollo de Apps en Windows 10
Introducción a Windows 10
Introducción a Windows 10
Windows 10 universal apps
Techdencias windows 10 diseño de aplicaciones universales
New controls in Windows 10
Diseño de Interfaces Mediante .NET
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
Tutorial de Aplicaciones para Windows Phone 7.1 Controles
Tutorial de Windows Phone 7.1 Basico
Computo visula basic

Más de Javier Suárez Ruiz (20)

PPTX
Cape Town MS Developer User Group: Xamarin Community Toolkit
PPTX
DotNetDom: El futuro de Xamarin
PPTX
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
PPTX
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
PPTX
Monkey Conf 2020: .NET MAUI Handlers
PPTX
Creando controles para Xamarin.Forms
PPTX
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
PPTX
Crear interfaces de usuario atractivas con Xamarin.Forms
PPTX
#XamarinUIJuly Summary
PPTX
DotNet 2019: Optimizando Apps con Xamarin.Forms
PPTX
Taller Xamarin Monkey Conf 2018
PPTX
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
PPTX
.Net Conf Sevilla 2018
PPTX
Analizando interfaces de usuario avanzadas con Xamarin.Forms
PPTX
OpenSouthCode 2018: Taller Xamarin
PPTX
DotNet2018: Xamarin.Forms Everywhere!
PPTX
Novedades Xamarin 3.0 Preview
PPTX
Desarrollo Xamarin, más allá del desarrollo
PPTX
Introducción a Xamarin.Forms
PPTX
Introducción a Xamarin
Cape Town MS Developer User Group: Xamarin Community Toolkit
DotNetDom: El futuro de Xamarin
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: .NET MAUI Handlers
Creando controles para Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.Forms
#XamarinUIJuly Summary
DotNet 2019: Optimizando Apps con Xamarin.Forms
Taller Xamarin Monkey Conf 2018
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
.Net Conf Sevilla 2018
Analizando interfaces de usuario avanzadas con Xamarin.Forms
OpenSouthCode 2018: Taller Xamarin
DotNet2018: Xamarin.Forms Everywhere!
Novedades Xamarin 3.0 Preview
Desarrollo Xamarin, más allá del desarrollo
Introducción a Xamarin.Forms
Introducción a Xamarin

Último (20)

PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
Presentación de Redes de Datos modelo osi
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
Estrategia de apoyo tecnología grado 9-3
PDF
clase auditoria informatica 2025.........
PDF
Diapositiva proyecto de vida, materia catedra
PDF
Maste clas de estructura metálica y arquitectura
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
CyberOps Associate - Cisco Networking Academy
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
REDES INFORMATICAS REDES INFORMATICAS.pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Presentación de Redes de Datos modelo osi
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Estrategia de apoyo tecnología grado 9-3
clase auditoria informatica 2025.........
Diapositiva proyecto de vida, materia catedra
Maste clas de estructura metálica y arquitectura
Plantilla para Diseño de Narrativas Transmedia.pdf
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx

Interfaces Adaptativas en Windows 10