我正在和一群朋友一起为Twitch项目开发应用程序。我最近在应用启动时集成了一个启动动画。唯一的问题是,这个初始动画渲染主页面上的登录按钮无用。现在,如果我移动按钮代码,按钮会在转换完成之前显示(不需要的结果),但按钮将工作。如果我将代码保留在按钮显示 post 转换(所需结果)的位置,则它不可点击(不希望的结果)。我相信你能看到我的沮丧。代码粘贴在下面。请记住,我对编码很新,所以如果这看起来很简单,请怜悯。
LoginPage的XAML:
<Grid>
<Image x:Name="image" Aspect="AspectFit"/>
<Button HorizontalOptions="Center"
VerticalOptions="Center"
BackgroundColor="#008b8b"
Image="twitchtwo.png"
Text=" Login using Twitch!"
FontSize="14"
TextColor="White"
Clicked="Button_Clicked"/>
<Grid x:Name="SplashGrid" BackgroundColor="#007272">
<Image x:Name="Logo"
Source="logo"
HorizontalOptions="Center"
VerticalOptions="Center">
<Image.TranslationY>
<OnPlatform x:TypeArguments="x:Double">
<On Platform="iOS">0</On>
<On Platform="Android">-12</On>
</OnPlatform>
</Image.TranslationY>
</Image>
</Grid>
</Grid>
LoginPage的C#代码:
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class LoginPage : ContentPage
{
public LoginPage()
{
InitializeComponent();
image.Source = ImageSource.FromResource("CCG.Images.ccgtext.png");
}
protected override async void OnAppearing()
{
base.OnAppearing();
await Task.Delay(2000);
await Task.WhenAll(
SplashGrid.FadeTo(0, 2000),
Logo.ScaleTo(0, 250)
);
}
private async void Button_Clicked(object sender, EventArgs e)
{
await Navigation.PushModalAsync(new TwitchAuth());
}
}
}
答案 0 :(得分:1)
我能够使用&#39; IsVisible&#39;来修复它。属性设置为false。感谢Roger Leblanc指出我正确的方向。
protected override async void OnAppearing()
{
base.OnAppearing();
await Task.Delay(2000);
await Task.WhenAll(
SplashGrid.FadeTo(0, 500),
Logo.ScaleTo(0, 250)
);
SplashGrid.IsVisible = false;
}
答案 1 :(得分:0)
您正在淡化SplashGrid
元素,淡化会将其不透明度设置为您指定的任何元素(0)。元素仍在您的网页上,但其不透明度为0.只需在淡入淡出完成后将Visibility
设置为Collapsed
或Hidden
。
protected override async void OnAppearing()
{
base.OnAppearing();
await Task.Delay(2000);
await Task.WhenAll(
SplashGrid.FadeTo(0, 2000),
Logo.ScaleTo(0, 250)
);
SplashGrid.Visibility = Visibility.Hidden;
}