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




Είμαι προσπαθεί να στείλει δημιουργούνται δυναμικά μου 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/)
δυστυχώς, δεν υπάρχει μία μέθοδος για ένα .ToXaml () σε ένα δέντρο στοιχείο δυστυχώς. Μπορείτε να χρησιμοποιήσετε VisualTreeHelper να οικοδομήσουμε μια τέτοια μέθοδο και recurse μέσα από ένα συγκεκριμένο στοιχείο υποθέτω.
ευχαριστώ πολύ για τη βοήθεια, η λύση ήταν στην ενεργοποίηση του καθρεπτισμού οθονών (mirroring) και όλα καλά… καλή συνέχεια Θα χρησιμοποιηθεί για να πάρει αυτό - νομίζω ότι είναι ένα bug με το παράθυρο εντοπισμού σφαλμάτων «Autos»:


[http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/eabc58b1-51b2-49ce-b710-15e2bf7e7516/](https://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/eabc58b1-51b2-49ce-b710-15e2bf7e7516/) μια λύση είναι να χρησιμοποιήσεις την web έκδοση. θέλει chrome που νομίζω υπάρχει ακόμα στα 32bit. <p>το .net 4.0 επιτρέπει στα πρωτεύοντα σύνολα interop (ή μάλλον, τα bits που χρειάζεστε) να ενσωματωθούν στη συνέλευση σας, ώστε να μην χρειάζεται να τα αναπτύξετε παράλληλα με την εφαρμογή σας.</p><p>για οποιονδήποτε λόγο, αυτή η συνέλευση δεν μπορεί να ενσωματωθεί - αλλά αυτό ακούγεται σαν να μην είναι πρόβλημα για εσάς. ανοίξτε την καρτέλα ιδιότητες για τη συνέλευση στο visual studio 2010 και ορίστε "ενσωμάτωση τύπων interop" σε "false".</p><p>edit: δείτε επίσης την <a href="https://stackoverflow.com/a/4553402/641833">απάντηση</a> του michael gustus, καταργώντας το επίθημα <code>class</code> από τους τύπους που χρησιμοποιείτε.</p> <p>είχα το ίδιο πρόβλημα χρησιμοποιώντας asp.net mvc και <a href="http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/">βρήκα τη λύση εδώ</a> </p><blockquote> <p>υπάρχει μεγάλη σύγχυση μεταξύ των νεοεισερχομένων στο <strong> angularjs </strong> για το γιατί οι <code>$http</code> λειτουργίες στενογραφίας της υπηρεσίας (<code>$http.post()</code>, κλπ.) δεν φαίνονται να είναι εναλλάξιμες με το <strong> ισοδύναμα jquery </strong> (<code>jquery.post()</code>, κ.λπ.)</p> <p>η διαφορά είναι στον τρόπο <strong> jquery </strong> και <strong> angularjs </strong> σειριοποίηση και μετάδοση των δεδομένων. βασικά, το πρόβλημα έγκειται στη γλώσσα του server σας που δεν είναι σε θέση να καταλάβει τη μετάδοση του angularjs με εγγενή ... από προεπιλογή, <strong> jquery </strong> μεταδίδει δεδομένα χρησιμοποιώντας</p> <pre><code>content-type: x-www-form-urlencoded </code></pre> <p>και την εξοικειωμένη σειριοποίηση <code>foo=bar&amp;baz=moe</code>.</p> <p><strong> το angularjs </strong>, ωστόσο, μεταδίδει δεδομένα χρησιμοποιώντας</p> <pre><code>content-type: application/json </code></pre> <p>και <code>{ "foo": "bar", "baz": "moe" }</code></p> <p>η σειριοποίηση json, η οποία, δυστυχώς, μερικές γλώσσες διακομιστή web - <em> και συγκεκριμένα η php </em> - δεν απομακρύνονται εγγενώς.</p> </blockquote><p>δουλεύει άψογα.</p><p><b>κωδικας</b></p><pre><code>// your app's root module... angular.module('mymodule', [], function($httpprovider) { // use x-www-form-urlencoded content-type $httpprovider.defaults.headers.post['content-type'] = 'application/x-www-form-urlencoded;charset=utf-8'; /** * the workhorse; converts an object to x-www-form-urlencoded serialization. * @param {object} obj * @return {string} */ var param = function(obj) { var query = '', name, value, fullsubname, subname, subvalue, innerobj, i; for(name in obj) { value = obj[name]; if(value instanceof array) { for(i=0; i&lt;value.length; ++i) { subvalue = value[i]; fullsubname = name + '[' + i + ']'; innerobj = {}; innerobj[fullsubname] = subvalue; query += param(innerobj) + '&amp;'; } } else if(value instanceof object) { for(subname in value) { subvalue = value[subname]; fullsubname = name + '[' + subname + ']'; innerobj = {}; innerobj[fullsubname] = subvalue; query += param(innerobj) + '&amp;'; } } else if(value !== undefined &amp;&amp; value !== null) query += encodeuricomponent(name) + '=' + encodeuricomponent(value) + '&amp;'; } return query.length ? query.substr(0, query.length - 1) : query; }; // override $http service's default transformrequest $httpprovider.defaults.transformrequest = [function(data) { return angular.isobject(data) &amp;&amp; string(data) !== '[object file]' ? param(data) : data; }]; }); </code></pre> έκανα δύο ενέργειες και δούλεψε:

1–απενεργοποίησα το τελευταίο ppa!

[[%ce%a3%cf%84%ce%b9%ce%b3%ce%bc%ce%b9%cf%8c%cf%84%cf%85%cf%80%ce%bf%20%ce%bf%ce%b8%cf%8c%ce%bd%ce%b7%cf%82]](https://linux-user.gr/uploads/default/original/2x/2/2e6134901aedf51e3ebb5ec654ef76214287cafc.png "στιγμιότυπο οθόνης.png")

2–από το synaptik εγκατέστησα το “xscanimage”. αυτό το τελευταίο δεν ξέρω αν έπαιξε κάποιο ρόλο! αν εννοείς μουσικα video τοτε youtube-dl με καποιο frontend οπως το [youtube-dl-gui](https://github.com/mrs0m30n3/youtube-dl-gui) ή το [clickgrab](https://download.clipgrab.org/clipgrab-3.9.6-x86_64.appimage) πιστευω θα σε βολεψουν.

αν εννοεις και με μετρατροπη σε mp3 τοτε και αυτο το υποστηριζουν τα εν λογω frontends αρκει να αλλαξεις το ειδος του αρχειου που σωζεις σε καθε περιπτωση.

ελπιζω να βοηθησα Ενώ μόδας, η λέξη-κλειδί κόλπο αναθεώρηση ενημερώνει μόνο το αρχείο όταν έχει αλλάξει σε αυτή την αναθεώρηση - αν δεν αλλάξει το αρχείο, τότε θα συνεχίσει να αντικατοπτρίζει την παλιά αναθεώρηση.


Αν θέλετε το λογισμικό να αντανακλά πάντα το συνολικό αριθμό αναθεώρησης, τότε θα πρέπει να σκαλίζω το [σχετικό SVN καταχωρήσεις αρχείο](http://svnbook.red-bean.com/en/1.1/ch08s03.html) και αποσυμπιέστε το, το οποίο δεν είναι πάρα πολύ δύσκολο (αυτό είναι ένα αρχείο XML).


Wikipedia το κάνει αυτό στη [σελίδα τους εκδοχή](https://en.wikipedia.org/wiki/Special:Version) για να δείξει την αναθεώρηση του λογισμικού που τρέχει ζωντανά? [ο κώδικας είναι εδώ](https://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/includes/specials/SpecialVersion.php) - αναζητήστε το **getSvnRevision ()** μέθοδο. τελικά βρήκα κι εγώ τρόπο προσπαθώντας να το τρέξω σε 2ο xserver. λόγω λάθους στο script που έφτιαξα(export display=:1.0), ξεκίνησε κανονικά στον πρώτο σε ανάλυση 1440χ900 χωρίς όμως να αλλάξει την ανάλυση στο desktop.

έτσι τρέχοντας το παρακάτω script έχω το επιθυμητό αποτέλεσμα

export displa… το βρήκα παιδιά.

έπρεπε να επιλέξω το: make this the primary display for the x screen.

έχω και δεύτερη οθόνη συνδεδεμένη και μάλλον μετά την εγκατάσταση των drivers της κάρτας γραφικών έγινε αυτό.

ευχαριστώ για τις απαντήσεις σας.