You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取添加超出边界图片后AbsoluteLayout的当前尺寸?

获取扩展后AbsoluteLayout的真实尺寸

针对你遇到的问题,核心原因是添加图片后布局尚未完成重绘,直接读取尺寸会拿到旧值,以下是几种可靠的解决方式:

  • 监听布局变更事件
    利用AbsoluteLayout的LayoutChanged事件,在布局完成更新后再获取最新尺寸,这是最稳妥的方式:

    // 在初始化时绑定事件
    yourAbsoluteLayout.LayoutChanged += OnAbsoluteLayoutLayoutChanged;
    
    // 事件处理方法
    private void OnAbsoluteLayoutLayoutChanged(object sender, EventArgs e)
    {
        var layout = sender as AbsoluteLayout;
        if (layout == null) return;
        
        double currentWidth = layout.Width;
        double currentHeight = layout.Height;
        // 在这里使用最新的尺寸值
    }
    
  • 主动触发尺寸计算
    如果需要在添加图片后立即获取尺寸,可以手动调用Measure方法强制布局重新计算自身所需大小,然后通过DesiredSize获取真实尺寸:

    // 完成图片添加操作后
    yourAbsoluteLayout.Measure(double.PositiveInfinity, double.PositiveInfinity);
    double realWidth = yourAbsoluteLayout.DesiredSize.Width;
    double realHeight = yourAbsoluteLayout.DesiredSize.Height;
    
  • 确认布局配置正确性
    确保AbsoluteLayout的布局选项没有被ScrollView限制:

    • 将AbsoluteLayout的HorizontalOptions和VerticalOptions设置为Start(而非Fill),让它能根据内容自由扩展
    • 保证ScrollView的直接子元素就是该AbsoluteLayout,没有额外的嵌套布局限制其尺寸

内容的提问来源于stack exchange,提问作者mustapha chaibi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 08:37:04