2015-09-02 2 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 вы можете привести его к типу Canvas & затем извлечь его размеры.

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

Если ответ вам помог, пожалуйста, подумайте о его повышении. – Ankit

Смежные вопросы