2010-03-27 4 views
2

J'ai une application Silverlight qui doit charger dynamiquement une image, en fonction du nom de l'image. L'approche im prenant droit est en train de passer le nom de l'image par la chaîne de requête à la page et passer que comme param à la balise de SilverlightCharger dynamiquement l'image sur Silverlight

Ceci est la chaîne de requête passée

Response.Redirect("Build.aspx?img=" + this.PictureUploader.PostedFile.FileName; 

Et j'essaie de passer à Silverlight comme ceci:

<object id="SilverlightObject" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
     <param name="source" value="Silverlight/iMapsSL.xap"/> 
     <param name="onError" value="onSilverlightError" /> 
     <param name="background" value="white" /> 
     <param name="minRuntimeVersion" value="3.0.40624.0" /> 
     <param name="autoUpgrade" value="true" /> 
     <param name="image" value="<%# Request.QueryString["img"] %>" /> 
     <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> 
      <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/> 
     </a> 
    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe> 

dans la dernière balise param name = avec valeur d'image = Requerst.QueryString

Je prends l'image à l'intérieur du application Silverlight comme celui-ci

private void Application_Startup(object sender, StartupEventArgs e) 
    { 
     string pictureName = ""; 

     if (e.InitParams != null && e.InitParams.Count > 0) 
     { 
      pictureName = e.InitParams["image"]; 

      this.RootVisual = new MainPage(pictureName); 
     } 

     else 
     { 
      this.RootVisual = new MainPage(); 
     } 
    } 

Et quand MainPage commence, je mis la source d'image du contrôle de l'image comme celui-ci

this.Image.Source = new BitmapImage(new Uri(pictureName, UriKind.RelativeOrAbsolute)); 

Mais charges Silverlight sans une image, une personne d'aide?

Répondre

1

Vous ne pouvez pas définir de valeurs arbitraires en inventant un nom de paramètre tel que "image". Les InitParams sont créés en spécifiant le paramètre "initparams". La valeur "initparams" est un ensemble délimité par des virgules de paires nom = valeur. Votre code devrait donc ressembler à: -

<object id="SilverlightObject" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
     <param name="source" value="Silverlight/iMapsSL.xap"/> 
     <param name="onError" value="onSilverlightError" /> 
     <param name="background" value="white" /> 
     <param name="minRuntimeVersion" value="3.0.40624.0" /> 
     <param name="autoUpgrade" value="true" /> 
     <param name="initparams" value="image=<%# Request.QueryString["img"] %>" /> 
     <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> 
      <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/> 
     </a> 
    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe> 
Questions connexes