Comment faire en sorte que Width et Height reflètent ScaleTransform et comment ScaleTransform en définissant Height et Width?

StackOverflow https://stackoverflow.com/questions/1404217

Question

J'ai un problème avec l'utilisation de ScaleTransform sur un canevas dans Silverlight. Le canevas est correctement mis à l'échelle, mais les valeurs de hauteur et de largeur restent toujours les mêmes.
par exemple. une toile 100x100 mise à l'échelle de sorte qu'il semble que 200x200 correspond toujours à 100x100 en ce qui concerne les valeurs de hauteur et de largeur, comment celles-ci peuvent être mises à jour pour refléter la nouvelle taille.

Un autre problème connexe concerne la modification de la hauteur et de la largeur d’un élément et l’adaptation appropriée de l’élément Canvas ou XAML, c.-à-d. définir un élément 100x100 sur 200x200 rend son contenu deux fois plus grand. Cette solution devrait être une solution où seules la hauteur et la largeur de l'élément sont définies pour modifier l'échelle.

Ces questions sont liées au même problème - espérons qu'il existe une solution qui fonctionne dans Silverlight 3.0

La hauteur et la largeur doivent être mises à jour pour que, lorsque ce canevas se trouve dans un objet ScrollViewer, la barre de défilement se mette à jour correctement pour la nouvelle taille - ceci se produit si la hauteur et la largeur sont affectées manuellement à la nouvelle taille mise à l'échelle, mais cela doit fonctionner pour toutes les tailles.
Inversement, il me faut un autre canevas dont la hauteur et la largeur sont modifiées, les éléments à l’intérieur sont mis à l’échelle de manière appropriée, car ce sera une icône redimensionnable pour une utilisation sur le même canevas ou sur un autre.

Si cela n’est pas possible dans Silverlight, vous obtiendrez cet effet dans le code, sinon en XAML, comme cela est possible dans WPF si vous utilisez un ImageBrush, mais Silverlight ne le prend pas en charge et nécessite un canevas évolutif. et une toile qui, une fois mise à l'échelle, met à jour ses propres hauteur et largeur.

Était-ce utile?

La solution

UIElement n’a connaissance d’aucune transformation qui lui serait appliquée. Il est donc impossible que ses propriétés width et height reflètent la transformation.

Une option consiste à ne pas utiliser de transformation du tout mais à utiliser un ViewBox (à partir de la boîte à outils silverlight)

La zone de visualisation redimensionne son contenu pour qu'elle remplisse toujours la zone de visualisation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top