2008-10-10 8 views
1

J'essaie d'envoyer ma page/image silverlight 2 créée dynamiquement à un service Web ASP.net pour la rendre sous forme d'image bitmap.Obtention de XAML de l'écran en cours dans silverlight 2

Je peux voir de nombreux exemples comment obtenir le code XAML en utilisant javascript (see here) dans la version 1 de Silverlight mais j'ai quelques différences.

a) J'utilise silverlight 2 RC1
b) j'ajouter dynamiquement des contrôles à la page en C#
c) Je préférerais utiliser C# pour obtenir le nouveau XAML de garder toutes les Coed en un seul endroit.

est-ce que quelqu'un sait comment extraire le XAML d'un contrôle ou de la page en C#?

Merci


Mise à jour: Il est maintenant possible en silverlight 3 en utilisant un bitmap inscriptible pour enregistrer le XAML comme JPEG voir mon blog ici: http://blog.blueboxes.co.uk/2009/07/21/rendering-xaml-to-a-jpeg-using-silverlight-3/

Répondre

0

malheureusement il n'y a pas une méthode pour un .ToXaml() sur un arbre d'éléments malheureusement. Vous pouvez utiliser VisualTreeHelper pour construire une telle méthode et recurse à travers un élément particulier, je suppose.

+0

Ceci est maintenant possible sous silverlight 3 voir après la mise à jour – John

0

C'est gratuit.

Le lien est http://silverlightcontrib.org

Le code serait quelque chose comme:

 

// using SilverlightContrib.Xaml; 

      var cb = new GroupBox(); 
      StringBuilder sb = new StringBuilder(); 
      XamlWriterSettings settings = new XamlWriterSettings(); 

      using (XamlWriter writer = XamlWriter.CreateWriter(sb, false, settings)) 
      { 
       writer.WriteElement(cb); 
      } 

      string result = sb.ToString(); 
 
Questions connexes