Xamarin 使矩形从图像继承位置

Xamarin Make Rectangle Inherit Position from Image

我只是想通过 c# 后面的代码设置这个矩形位置。首先,我在 xaml 页面中有以下图片:

    <Image x:Name="danzo"
           Source="danzo.png"
           AbsoluteLayout.LayoutBounds="0.5, 0.2, 200, 200"
           AbsoluteLayout.LayoutFlags="PositionProportional">

    </Image>

如您所见,这只是一张普通的图片,没有什么特别之处。在构造函数中,我尝试只获取此图像并显示它的尺寸(x、y、宽度和高度),如下所示:

Console.WriteLine("X Pos: {0}. Y Pos: {1}. Width: {2}. Height: {3}.", danzo.X, danzo.Y, danzo.Width, danzo.Height);

但它返回“X 位置:0。Y 位置:0。宽度:-1。高度:-1。”。这根本不对。该图像肯定具有一些真实的尺寸值,对吗?如果重要的话,我在构造函数中的 InitializeComponent 函数之后有这 console.writeline 行代码。

但是 我在 xaml 中创建了一个按钮并将其点击函数设置为名为“PrintImageDetails”的函数与上面完全相同的代码行。结果呢?我得到“X 位置:105.714285714286。Y 位置:121.142857142857。宽度:200。高度:200。”

因此,无论出于何种原因,在构造函数之后我似乎无法真正获得真实的图像尺寸。 (或者也许有某种方法,但我错过了)这很重要,因为我想将矩形位置设置为图像位置。这就是使我想到问题标题的原因。由于我不能在后面的 c# 代码中立即获得真实位置,是否可以让我的矩形从 .xaml 中的图像继承位置?下面是我的矩形代码。尽可能简单:

    <Rectangle x:Name="cropRect"
               AbsoluteLayout.LayoutBounds="0.5, 0.2, 200, 200"
               AbsoluteLayout.LayoutFlags="PositionProportional"
               BackgroundColor="Orange"
               Opacity="0.5">
        
    </Rectangle>

我还希望能够在从图像中获取位置并将其放入矩形中的同时进行一些数学运算。比如除法。如果可能的话,将不胜感激有关如何实施的示例。

感谢任何愿意提供帮助的人。

我实际上不必让矩形继承自 xaml 中的图像,因为这个 LayoutChildren 函数似乎在代码隐藏中对我有用。 Link这里How to get notified when ContentPage finishes loading

所以我将能够在该函数中获取图像的位置,然后能够将其应用于矩形。有效。