2015-09-02 103 views
1

我在運行時用長方形和拇指作爲孩子創建畫布。 我想訪問父級高度,我的父母是發件人事件中的畫布,由其子項調用。畫布是在運行時創建的。在變量p中,我想訪問父級的高度。獲取父母的高度

private void Rectangle_Click(object sender, RoutedEventArgs e) 
    { 
     var canvas = new Canvas(); 
     canvas.Height = 100; 
     canvas.Width = 100; 
     canvas.Background = new SolidColorBrush(Colors.Violet); 

     var thumb = new Thumb(); 
     thumb.Background = new SolidColorBrush(Colors.LimeGreen); 

     var template = new ControlTemplate(); 
     thumb.Height = 20; 
     thumb.Width = 20; 

     thumb.DragDelta+=thumb_DragDelta; 

     canvas.Children.Add(thumb); 
     Canvas.SetTop(thumb, 90); 
     Canvas.SetLeft(thumb, 90); 


     canvas.ManipulationMode = ManipulationModes.All; 
     canvas.ManipulationDelta += rec_ManipulationDelta; 
     canvas.RenderTransform = new TranslateTransform(); // Create new TranslateTransform and assign to the rectangle 

     board.Children.Add(canvas); 
    } 

    private void thumb_DragDelta(object sender, DragDeltaEventArgs e) 
    { 
     Thumb thumbSender = (Thumb)sender; 

     var p= thumbSender.Parent; 


     //double yadjust = recSender.Height + e.VerticalChange; 
     //double xadjust = recSender.Width + e.HorizontalChange; 

     //if ((xadjust >= 0) && (yadjust >= 0)) 
     { 
      //recSender.Width = xadjust; 
      //recSender.Height = yadjust; 
      Canvas.SetLeft(thumbSender, Canvas.GetLeft(thumbSender) + e.HorizontalChange); 
      Canvas.SetTop(thumbSender, Canvas.GetTop(thumbSender) + e.VerticalChange); 

     } 
    } 

回答

0

你既然知道拇指的父母是畫布,你可以將它轉換爲畫布型&然後取它的尺寸。

Canvas parentOfThumb = thumbSender.Parent as Canvas; 
if (parentOfThumb != null) //if in case Parent is not canvas 
    int p = parentOfThumb.ActualHeight; 
+0

如果答案對您有幫助,請考慮加註。 – Ankit