如何在自定义渲染器中获取按钮图像的图像宽度?

How to get the image width of the button image in a custom renderer?

我需要在按钮渲染器中获取图像的实际大小 class。我需要在 OnElementChanged 方法中从变量 e.NewElement.

中获取它

我试图从 e.NewElement.ImageSource 获取它,但它没有 属性 宽度或大小。如果我调试它,就会显示大小。

protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
        {
            base.OnElementChanged(e);
           //How to get width here from e ? 
}

您需要在 Android 中寻找本地对应部分,如下所示:

protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
            base.OnElementChanged(e);
            var image = Control?.GetCompoundDrawables()[0];
            if (image != null)
                //image.IntrinsicWidth
}

在 iOS 中类似于:

protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
            base.OnElementChanged(e);
            var image = Control?.CurrentImage;
            if (image != null)
                //image.Size.Width
}