Windows Phone 8.1: WebView – DefaultBackgroundColor & DOMContentLoaded


En Windows Phone 8.1 Microsoft nos proporciona otro método y dos eventos sumamente importantes para dominar a nuestro antojo el control WebView el cual he dedicado un tiempo para mostrar el potencial de este.

DefaultBackgroundColor

Para comenzar ahora podemos cambiar el color que trae el control por defecto si y solo si, la página no define un background porque ahí si no podemos modificarlo. Esto nos puede servir para modificar una aplicación Web a la identidad de la aplicación, con esto y con las técnicas anteriores podemos tener este WebApp totalmente modificable y parametrizable desde la aplicación de Windows, esto es simplemente magnífico!.

Yendo al grano, DefaulBackgroundColor es una propiedad que se puede leer y escribir (Get, Set) donde pide por parámetro a modificación un objeto tipo Windows.UI.Color y así mismo se puede obtener este tipo de dato.

El uso de esta propiedad es la siguiente:

// Get
Windows.UI.Color myColor = myWebView.DefaultBackgroundColor;

// Set
myWebView.DefaultBackgroundColor = Color.FromArgb(255, 0, 0, 0);

DOMContentLoaded

Sin embargo, en muchas ocasiones se desea controlar el evento cuando finalice de cargar el documento, para ello en el API de Windows nos ofrecen varios métodos pero el que mejor ofrece rendimiento entre otras opciones es DOMContentLoaded, en este caso controlaremos la carga del documento y para cuando finalice cambiar la visibilidad del control.

...
{
        myWebView.DOMContentLoaded += MyWebView_DOMContentLoaded;
}
...

private void MyWebView_DOMContentLoaded(Windows.UI.Xaml.Controls.WebView sender, WebViewDOMContentLoadedEventArgs args)
{
...
}

NavigationStarting

Otro evento importante para cuando se desea hacer un juego de visibilidades de controles es controlar cuando la navegación comience.

...
{
        myWebView.NavigationStarting += MyWebView_NavigationStarting;
}
...

private void MyWebView_NavigationStarting(Windows.UI.Xaml.Controls.WebView sender, WebViewNavigationStartingEventArgs args)
{
...
}

En el ejemplo propuesto lo que se hará es mostrar un control tipo ProgressRing y cuando finalice de cargar el documento mostrar el WebView, cambiar el DefaultBackgroundColor, adaptar el Website a los nuevos parámetros.


El código fuente de los ejemplos está en el repositiorio https://github.com/thEpisode/WindowsExperiments