我正在处理的视图需要在按下按钮时从下到上进行动画处理。
我尝试使用TranslateTo
函数,但没有成功。
这是我需要实现的视图。
有什么建议吗?
<StackLayout AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All">
<!-- Place new controls here -->
<Button Text="Scan" Clicked="Button_OnClicked"/>
</StackLayout>
<StackLayout x:Name="ScanView" AbsoluteLayout.LayoutBounds="1,1,1,0.3" AbsoluteLayout.LayoutFlags="All"
IsVisible="False" BackgroundColor="Blue">
<Label Text="Animate" HeightRequest="100"></Label>
</StackLayout>
</AbsoluteLayout>```
ScanView.IsVisible = true;
ScanView.Rotation = 0;
await Task.WhenAll(
ScanView.TranslateTo(0, 0, 2000, Easing.SinInOut));
答案 0 :(得分:1)
上面的代码有两个问题:
ScanView
的TranslateY设置为最初为其高度的值。固定代码:
XAML
<AbsoluteLayout>
<StackLayout AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All">
<!-- Place new controls here -->
<Button Text="Scan" Clicked="Button_OnClicked"/>
</StackLayout>
<StackLayout x:Name="ScanView"
AbsoluteLayout.LayoutBounds="0,1,1,0.3"
AbsoluteLayout.LayoutFlags="All"
TranslationY="{Binding Height, Source={x:Reference ScanView}}"
IsVisible="True" BackgroundColor="Blue">
<Label Text="Animate" HeightRequest="100"></Label>
</StackLayout>
</AbsoluteLayout>
CS
private void Button_OnClicked(object sender, EventArgs args)
{
ScanView.TranslateTo(0, 0, 200);
}
希望这会有所帮助。