Silverlight: Como cambiar el titulo de la pagina

Published 24/5/2009 16:58 | Eugenio Estrada

En los foros de Silverlight preguntaban como enlazar el título de una página a un control. El problema está en que Silverlight por defecto no tiene una propiedad que nos permita acceder directamente al título de la página. Esto es debido a que Silverlight no está concebido para una relación uno a uno (HTML-Silverlight) sino como una forma de complementar la página HTML. Pero en cambio si que propone un sistema de interacción entre ambos mundos.

Por lo tanto, para poder abordar dicho problema crearé una clase llamada PageUtil:

using System.Windows.Browser;

public class PageUtil
{
    public static string PageTitle
    {
        get
        {
            var result = "";
            var elements =
                HtmlPage.Document.GetElementsByTagName("Title");
            if (elements != null && elements.Count > 0)
            {
                var titleElement = (HtmlElement)elements[0];
                result = (string)titleElement.GetProperty("innerHTML");
            }
            return result;
        }
        set
        {
            HtmlPage.Document.SetProperty("title", value);
        }
    }
}

Una vez que ya tenemos la clase creada debemos crear el recurso, ya sea a nivel local en el UserControl o a nivel de aplicación (para una clase tan genérica yo recomiendo que sea a nivel de aplicación).

<MyProject:PageUtil x:Key="PageUtilDataSource" /> 

Y luego solamente tenemos que enlazar la propiedad al control queramos:

<TextBox DataContext="{Binding Source={StaticResource PageUtilDataSource}}"
         Text="{Binding Path=PageTitle, Mode=TwoWay}"
         Height="30"
         VerticalAlignment="Top" />

Recuerdo que a mayores de hacer el enlace (en nuestro caso en la propiedad Text) debemos establecerle el DataContext con el recurso.

Como siempre espero que os sea útil.

Follow me! http://twitter.com/eugenioestrada

Archivado en:
Comparte este post:

Comentarios

# Luis Ruiz Pavón said on May 25, 2009 10:09 AM:

Modifica el estilo de tu blog, no se ve el código correctamente ;)

Salu2

# Eugenio Estrada said on May 25, 2009 10:14 AM:

Estoy en ello ;-)

# Eugenio Estrada said on May 25, 2009 10:22 AM:

¿Ahora mejor? :-)

Gracias!

# Julio Trujillo Leon said on May 25, 2009 5:28 PM:

Muy sencillo pero potente.

# Miemblogs said on May 25, 2009 8:04 PM:

En los foros de Silverlight preguntaban como enlazar el título de una página a un control