Paso de parámetros de inicialización a aplicaciones Silverlight 2
viernes, 31 de octubre de 2008
Para incrustar objetos Silverlight en nuestras páginas web tenemos 3 vías:
- Utilizando el fichero silverlight.js
- Utilizando el Tag HTML Object
- Utilizando el control asp.net <asp:silverlight>
Para pasar parámetros de inicialización tenemos que:
- En el tercer caso se dispone de la propiedad InitParameters
<asp:Silverlight ID="Xaml1" runat="server" Source="~/ClientBin/SilverlightApplication2.xap" MinimumVersion="2.0.31005.0" Width="100%" Height="100%" InitParameters="key1=value1,key2=value2,key3=value3nnnnnnnnn" />
- En el segundo caso hay que pasar un tag param con el nombre initParams
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/SilverlightApplication2.xap"/>
<param name="onerror" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="2.0.31005.0" />
<param name="autoUpgrade" value="true" />
<param name="initParams" value="key1=value1,key2=value2,key3=value3nnnnnnnnn" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
</a>
</object>
Bien, ahora que sabemos como pasar parametros de inicialización, solo nos queda explorar las diferentes formas de obtenerlos.
- Dentro de cualquier parte de la aplicación silverlight, ya sea el app o cualquier página podemos obtenerlos directamente usando:
object miparam = System.Windows.Browser.HtmlPage.Plugin.GetProperty("initParams");
string sParameters = (miparam != null) ? miparam.ToString() : "parametro no encontrado";
//sParameters obtendría el valor "key1=value1,key2=value2,key3=value3nnnnnnnnn"
Dentro de App.xml.cs disponemos del evento Application_Startup, el cual recibe en propiedad InitParams del argumento llamado e un conjunto de claves-valor con el string correctamente convertido en un objeto IDictionary<string, string>
private void Application_Startup(object sender, StartupEventArgs e) {
string p1 = e.InitParams["key1"];
...
this.RootVisual = new Page();
...
}
Nota de diseño:
- Ya que en el método Application_Startup se obtienen los parámetros de inicialización correctamente parseados, podríamos sobrecargar el constructor de las páginas a mostrar para que puedan recibir un objeto diccionario.
private void Application_Startup(object sender, StartupEventArgs e) {
this.RootVisual = new Page(e.InitParams);
}
namespace SilverlightApplication2{
public partial class Page : UserControl {
public Page(){
InitializeComponent();
}
IDictionary<string, string>initParams;
public Page(IDictionary<string, string>parameters){
initParams = parameters;
}
...
}
}
- FIN -
5:11
|
Etiquetas:
silverlight2
|
This entry was posted on 5:11
and is filed under
silverlight2
.
You can follow any responses to this entry through
the RSS 2.0 feed.
You can leave a response,
or trackback from your own site.
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios:
Publicar un comentario