2009-08-31 6 views
1

I ont un carré de 400 x 400 avec une projection plane attachée à elleConversion de systèmes de coordonnées lors de l'utilisation projection plane dans silverlight 3

<Rectangle x:Name="Ground" Width="400" Height="400" Stroke="Black" VerticalAlignment="Bottom" Canvas.Left="60" Canvas.Top="50" > 
       <Rectangle.Fill> 
        <ImageBrush ImageSource="_images/grass.jpg"/> 
       </Rectangle.Fill> 
       <Rectangle.Projection> 
        <PlaneProjection x:Name="GroundPlaneProjection" CenterOfRotationZ="0" GlobalOffsetX="0" GlobalOffsetY="0" GlobalOffsetZ="0" LocalOffsetX="0" LocalOffsetY="0" LocalOffsetZ="0" RotationX="120" RotationY="-40" RotationZ="25"/> 
       </Rectangle.Projection> 
      </Rectangle> 

comment je déterminer les limites de la transformée carré de telle sorte que des objets placés sur elle ne sera pas hors limites?

Répondre

1

Vous pouvez convertir entre les espaces de coordonnées de différents éléments en utilisant la méthode TransformToVisual sur UIElement. Cela vous donnera un objet de transformation, que vous pouvez utiliser pour transformer des points dans l'espace de coordonnées d'un élément à l'espace de coordonnées d'un autre.

Cela devrait vous aider à réaliser ce que vous essayez de faire.

+0

Merci pour la réponse. J'ai essayé ceci en vain avant de poster, mais encore je peux me tromper. GeneralTransform transform = control.TransformToVisual (Ground); Coordonnées du point = transform.Transform (nouveau point (Ground.Margin.Left + Ground.Width, Ground.Margin.Top + Ground.Height)); Donc, en théorie, cela devrait me donner un point qui se trouve dans le coin inférieur droit du rectangle transformé, mais ce n'est pas le cas. Je me demande si j'ai besoin de transformer le rectangle à la toile contenant le rectangle. Je vais essayer cela et voir. –

+0

Si vous voulez obtenir le coin inférieur droit de "Ground" par rapport à un panneau (disons "LayoutRoot"), vous feriez: var transform = Ground.TransformToVisual (LayoutRoot); var point = transform.Transform (nouveau Point (Ground.Width, Ground.Height); – KeithMahoney

Questions connexes