#807 – Setting the Position of Child Elements in a Canvas from Code
April 26, 2013 Leave a comment
Recall that you position child elements in a Canvas panel by setting at most two out of four of the following attached properties: Left, Right, Top, Bottom. In all cases, you set a property to a value expressed in WPF (device-independent) units, equivalent to 1/96 inch.
You set any of these four values from code using one of the following static methods of the Canvas property:
- Canvas.SetLeft
- Canvas.SetRight
- Canvas.SetTop
- Canvas.SetBottom
// Whenever we move mouse over label, put it somewhere else private void Label_MouseMove(object sender, MouseEventArgs e) { Label lbl = sender as Label; Canvas canv = lbl.Parent as Canvas; Random rand = new Random(); // Set position to random location Canvas.SetLeft(sender as UIElement, rand.Next((int)(canv.ActualWidth - lbl.ActualWidth))); Canvas.SetTop(sender as UIElement, rand.Next((int)(canv.ActualHeight - lbl.ActualHeight))); }