О Метод перевода , в нем три параметра.
image.TranslateTo (TranslationX, TranslationY, millisecond);
- TranslationX: получает или задает дельту X перевода элемента .
- TranslationY: получает или задает дельту перевода Y элемента.
- миллисекунда: сколько времени нужно, чтобы завершить sh анимацию (миллисекунды).
Это означает, что параметры TranslationX
и TranslationY
просто указывают Смещение из View
, а не coordinate
.
Если у меня есть код xaml, как указано ниже:
<Image Source="icon.png" BackgroundColor="Accent" HorizontalOptions="Center" VerticalOptions="Center">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" NumberOfTapsRequired="1"/>
</Image.GestureRecognizers>
</Image>
<Image x:Name="imageone" Source="imageone.png" BackgroundColor="Aqua" HorizontalOptions="Center" WidthRequest="50" HeightRequest="50"/>
<Image x:Name="imagetwo" Source="imagetwo.png" BackgroundColor="Beige" HeightRequest="50" />
<Image x:Name="imagethree" Source="imagethree.png" BackgroundColor="BurlyWood" HeightRequest="50" />
На экране отображается: (Для лучшего объяснения я установил HeightRequest
и BackgroundColor
для Image
.)
Вы увидите сверху код, height
из imageone/imagetwo/imagethree
все равно 50
. И я получу X
из imageone
первым после запуска. Это 180
. Затем я напишу код для TapGestureRecognizer_Tapped
метода следующим образом, чтобы перевести imageone
и imagetwo
.
private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
Console.WriteLine("Tap" + imageone.X +"---"+ imageone.Y);
imageone.TranslateTo(-180, 0, 1000);
imagetwo.TranslateTo(0, 100, 1000);
}
Эффект следующим образом:
И напечатанные журналы Console
:
14:34:36.621 I/mono-stdout( 4499): Tap180---290.714285714286
14:34:41.171 I/mono-stdout( 4499): Tap180---290.714285714286
Тогда вы обнаружите, что есть два вывода:
Первый , TranslationX и TranslationY просто указывают Offset
из View
.
Второй , метод перевода не изменит coordinate
из View
.