2010-11-12 3 views
3

J'ai passé un certain temps d'aller sur tous les exemples sur http://www.silverlight.net/learn/quickstarts/Confused sur la façon dont Silverlight obtient sur la page

Et je suis encore assez perdu sur Silverlight. Je ne comprends pas exactement comment ça se passe sur le site. Comme ... est-ce qu'il y a un tutoriel qui montre comment créer une page Web HTML qui récupère une page Silverlight et l'affiche pour que vous puissiez travailler avec? Tout ce que j'ai dû travailler jusqu'à présent, ce sont les fichiers .aspx générés par défaut, qui ne me disent pas grand-chose. Et même en utilisant le générateur 'MVC Application' par défaut de Visual Studio est un peu nuageux et flou.

J'ai fait quelques recherches sur google et regardé autour de références, mais peut-être que je suis juste un peu stupide. Je n'arrive tout simplement pas à comprendre où tout se passe, pour ainsi dire. Des indices? Ou suis-je juste au-delà de l'apprentissage?

Répondre

2

Here est le tutoriel Microsoft Silverlight sur l'intégration en HTML. Le .xap est l'équivalent de Jnlp pour les applets modernes et .swf pour Flash. Les paramètres peuvent contrôler le code et peuvent également être mis à jour via Javascript. Le plugin Silverlight dans le navigateur exécute le code de l'application. HTML le maintient juste en place.

2

Créez simplement une application Silverlight et choisissez-la pour créer une application Silverlight sur un site Web.

Il va créer un projet qui génère la page qui contient l'objet silverlight qui charge le fichier xap sur le client.

Le fichier xap se trouve dans ClientBin, le fichier xap est l'application Silverlight.

Tant que vous pointez la source d'objet <param> vers le chemin d'accès du fichier xap, vous devez charger l'application Silverlight correspondante.

alt text

Le projet crée:

alt text

Exemple de page ASPX:

<%@ Page Language="C#" AutoEventWireup="true" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>SilverlightApplication1</title> 
    <style type="text/css"> 
    html, body { 
     height: 100%; 
     overflow: auto; 
    } 
    body { 
     padding: 0; 
     margin: 0; 
    } 
    #silverlightControlHost { 
     height: 100%; 
     text-align:center; 
    } 
    </style> 
    <script type="text/javascript" src="Silverlight.js"></script> 
    <script type="text/javascript"> 
     function onSilverlightError(sender, args) { 
      var appSource = ""; 
      if (sender != null && sender != 0) { 
       appSource = sender.getHost().Source; 
      } 

      var errorType = args.ErrorType; 
      var iErrorCode = args.ErrorCode; 

      if (errorType == "ImageError" || errorType == "MediaError") { 
       return; 
      } 

      var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ; 

      errMsg += "Code: "+ iErrorCode + " \n"; 
      errMsg += "Category: " + errorType + "  \n"; 
      errMsg += "Message: " + args.ErrorMessage + "  \n"; 

      if (errorType == "ParserError") { 
       errMsg += "File: " + args.xamlFile + "  \n"; 
       errMsg += "Line: " + args.lineNumber + "  \n"; 
       errMsg += "Position: " + args.charPosition + "  \n"; 
      } 
      else if (errorType == "RuntimeError") {   
       if (args.lineNumber != 0) { 
        errMsg += "Line: " + args.lineNumber + "  \n"; 
        errMsg += "Position: " + args.charPosition + "  \n"; 
       } 
       errMsg += "MethodName: " + args.methodName + "  \n"; 
      } 

      throw new Error(errMsg); 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server" style="height:100%"> 
    <div id="silverlightControlHost"> 
     <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
      <param name="source" value="ClientBin/SilverlightApplication1.xap"/> 
      <param name="onError" value="onSilverlightError" /> 
      <param name="background" value="white" /> 
      <param name="minRuntimeVersion" value="3.0.40818.0" /> 
      <param name="autoUpgrade" value="true" /> 
      <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none"> 
       <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> 
      </a> 
     </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> 
    </form> 
</body> 
</html> 
6

La réponse courte est que vous incluez les applications Silverlight dans une page Web en utilisant un balise d'objet en HTML. Le navigateur Web est alors chargé de charger l'application Silverlight de la même manière que les applications Flash. Consultez ces quickstarts pour une explication plus détaillée. Ne vous découragez pas, c'est un nouveau concept pour beaucoup de développeurs :).

Voici un exemple d'une application Silverlight étant intégré dans une page Web:

<body> 
    <form id="form1" runat="server" style="height:100%"> 
    <div id="silverlightControlHost"> 
     <object data="data:application/x-silverlight-2," 
       type="application/x-silverlight-2" 
       width="100%" height="100%"> 
      <param name="source" value="HelloWorld.xap"/> 
      <param name="onError" value="onSilverlightError" /> 
      <param name="background" value="white" /> 
      <param name="minRuntimeVersion" value="4.0.50401.0" /> 
      <param name="autoUpgrade" value="true" /> 
      <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" 
        style="text-decoration:none"> 
      <img src="http://go.microsoft.com/fwlink/?LinkId=161376" 
        alt="Get Microsoft Silverlight" style="border-style:none"/> 
      </a> 
     </object> 
     <iframe id="_sl_historyFrame" 
       style="visibility:hidden;height:0px;width:0px;border:0px"> 
     </iframe> 
    </div> 
    </form> 
</body> 
+0

J'ai fait tout ça, et je ne comprends pas. Il fait un fichier .xaml et je ne peux rien faire avec. Faire un programme est inutile si je ne peux avoir qu'un seul fichier, honnêtement. J'ai regardé les balises et cela ne donne aucune indication sur la page en cours de chargement ... J'ai fait chacun des quickstarts, et ils n'ont tout simplement aucun sens. – Ciel

+0

Oui mais cela fait référence à l'ensemble de l'application. Quel est le but de différentes pages si je ne peux que faire référence au seul? – Ciel

+0

@Stacey Il n'est pas en train de charger une page, il est en train de charger les données d'application similaires à flash swf de chargement, ou un jar de chargement de l'applet. Donc le truc est dans "data: application/x-silverlight-2". – whatnick

Questions connexes