Comment graphique.save code> différent de
graphique.begincontainer code>? p>
3 Réponses :
graphique.save méthode forte>
Enregistre l'état actuel de ces graphiques et identifie l'état enregistré avec un groupe graphique. P>
graphique.begincontainer la méthode forte>
Enregistre un conteneur graphique avec l'état actuel de cet objet graphique et s'ouvre et utilise un nouveau conteneur graphique. P>
remarques em> strong> p>
Appels vers la méthode em> Méthode Place Informations sur la même pile que des appels à la méthode Enregistrer em>. Juste comme un appel de restauration est jumelé avec un appel em> / em> appel, un appel endcontainer em> est jumelé avec un appel em> méthode. P>
Lorsque vous appelez la méthode restaurer em>, tous les blocs d'informations placés sur la pile (par la méthode de sauvegarde ou par la méthode Begincontainer em>) après l'appel correspondant à la méthode de sauvegarde sont retirés de la pile. De même, lorsque vous appelez la méthode EndContainer em>, tous les blocs d'information placés sur la pile (par la méthode sauvegardent em> ou par la méthode begincontainer em> méthode) après le L'appel correspondant à la méthode Begincontainer em> est supprimé de la pile. p>
Voir les détails sur
http://msdn.microsoft.com/fr- US / Bibliothèque / System.Drawing.Graphics.save.aspx P>
Sonne comme des similitudes. Je cherche des différences. :)
Jetez un look ici : P>
La documentation ne fait pas différencier les appels à Begincontainer / EndContainer et appels aux graphiques.save et graphiquesRestore. De plus, il y a quelques erreurs dans La documentation. [par exemple., GraphicsState est mal affirmée être utilisé par Begincontainer] P>
Dans mon usage, Begincontainer / EndContainer semble Enregistrer et restaurer le courant transformer. Il ne sauve pas réellement la région de coupure comme le la documentation affirme, et ce n'est peut-être pas Enregistrer l'une des autres propriétés de les objets graphiques. P>
avec sauvegarde / restauration, j'ai été en mesure de sauvegarder / restaurer le coupure région, transformation actuelle et autres Les paramètres. Il semble être, sinon complet, plus "complet" que le Fonctions de conteneur. Donc, je suspecter une performance / complète Tradeoff avec les deux différents Méthodes. P>
Je doute comme si la documentation est correcte dans l'énoncé cet objet graphique constitut (utilisé par Enregistrer) sont stockés dans la pile comme sont Objets graphiquesContainer (utilisé par BEGINCONTINAINER). Je soupçonne que GraphicsState peut même pas être placé sur une pile, mais je n'ai pas testé cela hypothèse. p> blockQuote>
Peut-être que je peux donner une explication de quelques exemples de MSDN. La version de My MSDN est Visual Studio 2008 SP1. Et les exemples peuvent être trouvés lorsque vous entrez dans le mot-clé "conteneurs graphiques imbriqués" dans la modification de MSDN. p>
Et son explication est ci-dessous: p>
Comme les deux exemples précédents montrent, les transformations et les régions de coupure sont cumulatifs dans des conteneurs imbriqués. Si vous définissez les transformations du monde du conteneur et l'objet graphique, les deux transformations s'appliqueront aux éléments tirés de l'intérieur du conteneur. La transformation du conteneur sera appliquée en premier et la transformation de l'objet graphique sera appliquée deuxièmement. Si vous définissez les régions de découpage du conteneur et de l'objet graphique, les éléments dessinés de l'intérieur du conteneur seront coupés par l'intersection des deux régions de coupure. P> blockQuote>
du contenu copié ci-dessus, les mots-clés sont "cumulatifs" et "intersection". Par conséquent, je pense que cela peut être un moyen de comprendre la fonction de bégincère. P>