Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

Silverlight : réagir au changement de taille du browser

[new:24/5/2010] Silverlight et Xaml sont très souples et il existe souvent plusieurs moyens d'atteindre le même objectif surtout lorsqu'il s'agit de mise en page. Par exemple centrer une application SL dans le browser peut se faire en créant une application occupant tout l'espace puis gérer dans l'application le centrage d'une grille ou bien on peut se reposer sur HTML et CSS pour centrer dans une balise <div> le plugin SL.

Il se peut aussi qu'on préfère un autre type de placement qui réclame de connaître la taille de l'espace utilisable du browser et de réagir à tout changement de dimension de ce dernier.

Le moyen le plus simple pour réagir au changement de taille du browser consiste à accrocher un gestionnaire d'événement sur l'objet App.Current.Host.Content :

dans Page.xaml.cs:

public Page()
{    
     InitializeComponent();
     App.Current.Host.Content.Resized += new EventHandler(Content_Resized);
}

Il est alors facile de prendre en compte la modification de taille lorsqu'elle intervient. Dans l'exemple ci-dessous on se contente de relever la hauteur et la largeur sans rien faire, dans une application réelle il y aurait évidemment un code plus subtile !

void Content_Resized(object sender, EventArgs e)
{
     double height = App.Current.Host.Content.ActualHeight;
     double width = App.Current.Host.Content.ActualWidth;
}

C'est simple et ça peut servir...

Stay Tuned !

blog comments powered by Disqus