0

我只是想通过 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 Pos:0。Y Pos: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>

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

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

4

1 回答 1

0

我实际上不必让 rect 从 xaml 中的图像继承,因为这个 LayoutChildren 函数在后面的代码中似乎对我有用。链接在这里如何在 ContentPage 完成加载时得到通知

因此,我将能够在该函数中获取图像的位置,然后将其应用于矩形。作品。

于 2021-04-16T20:27:03.937 回答