
Είμαι προσπαθεί να στείλει δημιουργούνται δυναμικά μου Silverlight 2 σελίδα / εικόνα σε μια υπηρεσία web ASP.net να το καταστήσει ως εικόνα bitmap.


Μπορώ να δω πολλά παραδείγματα πώς να πάρει το XAML τη χρήση javascript ( [δείτε εδώ](http://www.thedatafarm.com/blog/2008/01/31/ConvertingSilverlightInkPresenterImagesToAPNGFile.aspx) ) στην έκδοση 1 του Silverlight, αλλά έχω μερικές διαφορές.


α) Είμαι χρησιμοποιώντας το Silverlight 2 RC1   

β) έχω προσθέσει δυναμικά στοιχεία ελέγχου στη σελίδα του στο γ #   

γ) Θα προτιμούσα να χρησιμοποιήσει γ # για να πάρει το νέο XAML για να κρατήσει όλα τα φοιτήτρια σε ένα μέρος.


Ξέρει κανείς πώς να εξαγάγετε το XAML από τον έλεγχο ή τη σελίδα σε C #; 


Ευχαριστώ




---


Ενημέρωση: Αυτό είναι τώρα δυνατό υπό το Silverlight 3 χρησιμοποιώντας ένα εγγράψιμο bitmap για να σώσει την XAML ως JPEG δείτε ανάρτηση blog μου εδώ: [http://blog.blueboxes.co.uk/2009/07/21/rendering-xaml-to- α-jpeg-χρησιμοποιώντας-Silverlight-3 /](http://blog.blueboxes.co.uk/2009/07/21/rendering-xaml-to-a-jpeg-using-silverlight-3/)

 
Να πάρει XAML της τρέχουσας οθόνης στο Silverlight 2
====================================================



δυστυχώς, δεν υπάρχει μία μέθοδος για ένα .ToXaml () σε ένα δέντρο στοιχείο δυστυχώς. Μπορείτε να χρησιμοποιήσετε VisualTreeHelper να οικοδομήσουμε μια τέτοια μέθοδο και recurse μέσα από ένα συγκεκριμένο στοιχείο υποθέτω.

 

Ελέγξτε έξω αυτό το σύνδεσμο για να δείτε αν θα σας βοηθήσει καθόλου.
<http://blogs.vertigo.com/personal/ralph/Blog/archive/2008/11/21/snapshot-of-xaml-control-save-to-image.aspx>

 

SilverlightContrib έχει μια τάξη XamlWriter που μπορεί να εξαγάγει την XAML από ένα ζωντανό ελέγχου.


Είναι δωρεάν.


Ο σύνδεσμος είναι: <http://silverlightcontrib.org>


Ο κώδικας θα είναι κάτι σαν:



```

// 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();


```
 