2009-09-10 6 views
1

J'ai un problème concernant l'utilisation d'une ScaleTransform sur un canevas dans Silverlight, le canevas est correctement mis à l'échelle, mais les valeurs Height et Width restent toujours les mêmes.
par exemple. un Canevas 100x100 mis à l'échelle de sorte qu'il apparaît 200x200 est toujours 100x100 en ce qui concerne les valeurs Hauteur et Largeur, comment peuvent-ils être mis à jour pour refléter la nouvelle taille.Comment faire pour que Largeur et Hauteur reflètent ScaleTransform et comment ScaleTransform en définissant Hauteur et Largeur?

Une autre question connexe est de savoir comment modifier la hauteur et la largeur d'un élément et d'avoir cette échelle l'élément Canvas ou XAML de façon appropriée. le réglage d'un élément 100x100 à 200x200 fait que tout soit deux fois plus grand - cela devrait être une solution où seule la hauteur et la largeur de l'élément sont réglées pour modifier l'échelle.

Ces questions sont liées à la même question - nous l'espérons il y a une solution, qui fonctionne dans Silverlight 3,0


hauteur et la largeur doivent mis à jour de sorte que lorsque cette toile est dans une mise à jour ScrollViewer correctement la barre de défilement pour la nouvelle taille - cela se produit si la hauteur et la largeur sont assignées manuellement à la nouvelle taille mise à l'échelle, mais cela doit fonctionner pour toutes les tailles.
Inversement, j'ai besoin d'un autre canevas que lorsque sa hauteur et sa 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 à utiliser sur le même canevas ou un autre.


Si cela est impossible dans Silverlight est directement là-bas de toute façon de parvenir à cet effet dans le code, sinon en XAML, comme cela est possible dans WPF si un ImageBrush est utilisé, mais Silverlight ne supporte pas et le besoin un canevas évolutif et un canevas qui, mis à l'échelle, met à jour sa hauteur et sa largeur.

Répondre

2

Un UIElement ne connaît aucune transformation qui lui est appliquée. Il n'est donc pas possible que ses propriétés width et height reflètent la transformation.


bien une option est de ne pas utiliser une transformation du tout, mais d'utiliser un ViewBox (à partir de la boîte à outils de silverlight)

Le négatoscope met à l'échelle le contenu pour remplir toujours le négatoscope.

+0

Je n'étais pas au courant de cela, serait-il possible de mettre à jour la hauteur et la largeur dans le code d'une valeur post-ScaleTransform pour la hauteur et la largeur? – RoguePlanetoid

+0

Si vous faites cela, cela va se terminer encore plus grand, puisque la nouvelle largeur serait alors mise à l'échelle. Pouvez-vous donner une idée de l'utilisation que vous allez faire en sachant la largeur et la hauteur après transformation? –

+0

J'ai besoin de la Hauteur et de la Largeur car j'ai un élément dans un ScrollViewer qui met à jour la barre de défilement en utilisant la Hauteur et la Largeur d'un élément. , plus il y a une valeur de hauteur et de largeur affichée qui a besoin d'être mise à jour aussi. – RoguePlanetoid

Questions connexes