我有个问题。我想要创建一个GetStarted屏幕,但为此,我认为如果我有一个动画背景会很有趣。非常简单:从#212121到#5e5e的背景色呼吸效果。
我在网上找不到任何关于动画背景的东西。有人能帮我吗,还是这不可能?
发布于 2019-11-21 09:07:27
Solution1:
您可以使用ViewExtensions.FadeTo(VisualElement, Double, UInt32, Easing) Method
执行淡出。
ViewExtensions.FadeTo(VisualElement, Double, UInt32, Easing) Method
:https://learn.microsoft.com/en-us/dotnet/api/xamarin.forms.viewextensions.fadeto?view=xamarin-forms
例如,我使用BoxView
。
Xaml:
<BoxView
x:Name="boxView"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
Color="Accent" />
代码:
public Page26()
{
InitializeComponent();
Animation();
}
private bool _isAnimate;
private async void Animation()
{
var fade = 1.0;
_isAnimate = true;
while (_isAnimate)
{
await boxView.FadeTo(Fade(), 1000, Easing.Linear);
}
double Fade()
{
fade = fade == 1 ? 0.1 : 1;
return fade;
}
}
GIF有点紧张,但在设备上,动画是平滑的。
更新:
您可以使用boxview
作为背景色,并为控件执行重叠操作。
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<BoxView
x:Name="boxView"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
Color="Accent" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="3"/>
<Button Grid.Row="1" Grid.Column="1" Text="Button" BackgroundColor="Black" TextColor="White"></Button>
</Grid>
有关重叠的更多信息,您可以查看下面的链接。How do overlap in Xamarin forms?
Solution2:
设置ContentPage的名称。
<ContentPage
……
x:Name="page">
MainPage.xaml.cs:
public MainPage()
{
InitializeComponent();
Animation();
}
private bool _isAnimate;
private async void Animation()
{
var fade = 1.0;
_isAnimate = true;
while (_isAnimate)
{
await page.FadeTo(Fade(), 1000, Easing.Linear);
}
double Fade()
{
fade = fade == 1 ? 0.1 : 1;
return fade;
}
}
https://stackoverflow.com/questions/58964808
复制相似问题