2009-11-12 5 views
1

Je veux dessiner un rectangle à la position que je reçois de startPoint, mais maintenant il place mon rectangle milieu de PictureCanvas, quand je veux le mettre en position startPointComment placer un élément à positionner avec Silverlight?

private void DragSelectComponent_SelectionEnd(DragSelectEventArgs e) 
{ 
    Output.Text = "Start: " + e.StartPoint.ToString() + "  End: " + e.EndPoint.ToString() + "\n(" + e.EventType + ")\n"; 
    Rectangle rectangle = new Rectangle() { Width = e.EndPoint.X - e.StartPoint.X, Height = e.EndPoint.Y - e.StartPoint.Y, Fill = new SolidColorBrush(Colors.Purple) }; 
    PictureCanvas.Children.Add(rectangle); 
} 

Répondre

1

utiliser Just: -

Rectangle rectangle = new Rectangle() { Width = e.EndPoint.X - e.StartPoint.X, Height = e.EndPoint.Y - e.StartPoint.Y, Fill = new SolidColorBrush(Colors.Purple) }; 
Canvas.SetLeft(rectangle, e.StartPoint.X); 
Canvas.SetTop(rectangle, e.StartPoint.Y); 
PictureCanvas.Children.Add(rectangle); 
+0

Cela n'a pas fonctionné, pour quelque raison mon rectangle est toujours au milieu de PictureCanvas – newbie

+1

Vous êtes sûr que "PictureCanvas" est en fait un Canvas? Êtes-vous sûr que le rectangle dans l'argument args __doesn't__ décrit un rectangle au milieu du Canvas? – AnthonyWJones

+0

PictureCanvas est l'élément Grid. devrait-il être l'élément Canvas? – newbie

1

Avez-vous essayé:

rectangle.SetValue(Canvas.LeftProperty, p.X); 
rectangle.SetValue(Canvas.TopProperty, p.Y); 
+0

J'ai essayé, mais il ne semble pas fonctionner. – newbie

Questions connexes