获取父级的高度

Posted

技术标签:

【中文标题】获取父级的高度【英文标题】:Get height of Parent 【发布时间】:2015-11-27 10:57:27 【问题描述】:

我在运行时使用矩形和拇指创建画布作为一个孩子。 我想访问父级高度,我的父级是由其子级调用的发送者事件中的画布。画布是在运行时创建的。在变量 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);

        
    

【问题讨论】:

【参考方案1】:

由于您知道 Thumb 的父级是 Canvas,您可以将其转换为 Canvas 类型,然后获取其尺寸。

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

【讨论】:

如果回答对你有帮助,请考虑点赞。

以上是关于获取父级的高度的主要内容,如果未能解决你的问题,请参考以下文章

div用绝对值填充父级的剩余高度

为啥这个 textarea 不能假设它在 Chrome 中的父级的全部高度?

android -> 将 ImageView 的高度设置为父级的动态高度

溢出:隐藏在内联块上增加了父级的高度

CSS - 将父级的高度设置为 0,但子级 div 仍然显示

如何使元素按父级的高度在列中流动