Windows Phone 8.1: Controles nuevos

agosto 20, 2014 Christian Amado 0 Comentarios

Introducción

En una entrada anterior, hemos visto los controles que han sido renombrados dentro de esta nueva forma de desarrollar en la plataforma Windows Phone. En esta publicación veremos algunos de los controles nuevos en esta nueva versión de Windows Phone, es decir, controles que se agregan a la familia a partir de esta versión.

Controles nuevos

DatePickerFlyout

Este control permite mostrar la fecha y es un control de página completa. En caso que se quiera mostrar el selector de fecha sin utilizar el DatePicker tradicional se puede declarar este control de la siguiente manera:
var selector = new DatePickerFlyout();
var date = selector.Date;
En este control no se permite el valor null.


TimePickerFlyout

Este control permite mostrar la porción correspondiente al tiempo y es un control de página completa. En caso que se quiera mostrar el selector de tiempo sin utilizar el TimePicker tradicional se puede declarar este control de la siguiente manera:
var selector = new TimePickerFlyout();
var tiempo = selector.Time
En este control no se permite el valor null.


PickerFlyout

Este control representa el "flyout" normal excepto que posee la propiedad ConfirmationButtonsVisible. Se puede establecer que muestre los botones de Hecho/Cancelar al pie de los controles, no así en DatePickerFlyout y TimePickerFlyout. Se puede también, establecer que afecte a la pantalla completa pero sin la utilización de botones. Un ejemplo de su utilización podría ser:
var selector = new PickerFlyout();
var texto = new TextBlock { Text = "Mi icono desplegable", FontSize = 20 };
selector.Content = texto;
selector.ConfirmationButtonsVisible = true;
await pf.ShowAtAsync(targetFrameWorkElement); //esto permite mostrar en pantalla completa


ListPickerFlyout

También es un control de pantalla completa. Muestra una lista desde la propiedad ItemsSource, el cual puede ser cambiado utilizando plantillas Se define de la siguiente forma:
var selector = new ListPickerFlyout();
selector.ItemsSource = origen;
await selector.ShowAtAsync(targetFrameWorkElement); //esto permite mostrar en pantalla completa.
var index = selector.SelectedIndex


AutoSuggestBox

Este control sólo existe para Windows Phone 8.1. Puede ser utilizado con otros controles y ser utilizado múltiples veces en un mismo lugar (control de usuario o página). Se define de la siguiente forma:
<AutoSuggestBox TextChanged="AutoSuggestBox_TextChanged" 
    SuggestionChosen="AutoSuggestBox_SuggestionChosen" ItemsSource="{Binding 
    Sugerencias}">
    <AutoSuggestBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}"/>
        </DataTemplate>
    </AutoSuggestBox.ItemTemplate>
</AutoSuggestBox>
private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, 
        AutoSuggestBoxTextChangedEventArgs args)
{
    if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
    {
        Sugerencias.Clear();
        Sugerencias.Add(sender.Text + "1"); //sender se refiere al control que envía la solicitud (en este caso el control mismo).
        Sugerencias.Add(sender.Text + "2");
    }
}
private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender,
AutoSuggestBoxSuggestionChosenEventArgs args)
{
     // Agregar texto al control!
}

Conclusión

Es una lista interesante de controles que podemos utilizar con las Aplicaciones Universales, y demuestra que tenemos muchas ventajas al realizar este tipo de aplicaciones.