Comment retourner l’image dans wpf

J’ai récemment appris à faire pivoter un BitmapImage en utilisant les classes ‘TransformedBitmap’ et ‘RotateTransformed’. Maintenant, je suis capable d’effectuer des rotations dans le sens des aiguilles d’une montre sur mes images. Mais comment puis-je retourner une image? Je ne trouve pas la ou les classes pour effectuer des retournements horizontaux et verticaux d’une image Bitmap. S’il vous plaît, aidez-moi à comprendre comment le faire. Par exemple, si mon image était un dessin qui ressemblait à un «d», un retournement vertical donnerait quelque chose comme un «q», et un retournement horizontal donnerait quelque chose comme un «b».

Utilisez un ScaleTransform avec un ScaleX de -1 pour horizontal et ScaleY de -1 pour un retournement vertical, appliqué à la propriété RenderTransform l’image. L’utilisation de RenderTransformOrigin="0.5,0.5" sur l’image garantit que votre image est retournée autour de son centre, vous n’avez donc pas besoin d’appliquer une TranslateTransform supplémentaire pour la mettre en place:

      

pour retournement horizontal et

      

pour la verticale.

Si vous voulez le faire en code-behind, en C # il devrait ressembler à ceci:

 img.RenderTransformOrigin = new Point(0.5,0.5); ScaleTransform flipTrans = new ScaleTransform(); flipTrans.ScaleX = -1; //flipTrans.ScaleY = -1; img.RenderTransform = flipTrans; 

Pour donner à votre flip un peu plus de “profondeur”, de sorte que cela ressemble plus à un véritable flip, vous voudrez probablement effectuer une transformation avec une transformation à plus petite échelle.

Vous voudriez incliner l’object d’environ 20 degrés pour qu’il se mette en 3D. Ceci est un pauvre flip 3D de l’homme. Vous pouvez réaliser un véritable retournement 3D dans WPF, mais cela demande un peu plus de travail.

Cela vous donnera l’animation qui semble plus propre, puis vous pouvez basculer la visibilité sur deux panneaux différents pour donner une impression de face et de face arrière à votre élément.

                      

Contrôle utilisateur 3D flippable intéressant: http://flipcontrol.codeplex.com/releases/view/22358

Dans votre cas, vous devrez afficher des deux côtés la même image.

Une astuce rapide pour le retournement horizontal (uniquement) de btw consiste à définir la propriété FlowDirection sur FlowDirection.RightToLeft. Si le composant est un conteneur, certains enfants peuvent interpréter la propriété différemment (logique personnalisée)

Vous pouvez utiliser ScaleTransform avec ScaleX / ScaleY :

       
           

Créez un composant d’image comme celui-ci. Et lorsque sa source est définie, l’image bascule de gauche à droite.