C# 如何通过单击更改图片
我有两个相同类型的图像,一个是蓝色,另一个是粉红色,以模拟点击图像,因此当我点击图像时,它会调用一个屏幕,而不会首先调用另一个图像。 我想要的是在调用另一个屏幕之前,单击蓝色的初始图像,将其更改为粉红色,然后才调用屏幕C# 如何通过单击更改图片,c#,xamarin.forms,C#,Xamarin.forms,我有两个相同类型的图像,一个是蓝色,另一个是粉红色,以模拟点击图像,因此当我点击图像时,它会调用一个屏幕,而不会首先调用另一个图像。 我想要的是在调用另一个屏幕之前,单击蓝色的初始图像,将其更改为粉红色,然后才调用屏幕 <Image x:Name="CmdCalendario" Grid.Row="0" Grid.Column="0" Source="calendarioFiscallivre.png" VerticalOptions="FillAndExpand" Horizonta
<Image x:Name="CmdCalendario" Grid.Row="0" Grid.Column="0" Source="calendarioFiscallivre.png" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" />
var CalendarioClick = new TapGestureRecognizer();
CalendarioClick.Tapped += (s, e) =>
{
CmdCalendario.Source = ImageSource.FromResource("Agtmovel.Img.calendarioFiscalpressed.png");
Navigation.PushAsync(new CalendarioFiscal());
}; CmdCalendario.GestureRecognizers.Add(CalendarioClick);
可以用于模拟单击图像
<flex:FlexButton
WidthRequest="76"
HeightRequest="76"
CornerRadius="38"
HorizontalOptions="Center"
Icon="lightbulb.png"
ForegroundColor="#ffffff"
HighlightForegroundColor="#49516F"
BackgroundColor="#6279B8"
HighlightBackgroundColor="#8EA4D2" />
CalendarioClick.Tapped中的代码是同步的,它们将按顺序执行。在你进入一个新页面之前,图像资源确实发生了变化,但是变化的过程非常快,你甚至无法理解它
解决方案:
您可以在推送到新页面之前添加短暂延迟。您可以根据需要定义延迟时间
var CalendarioClick = new TapGestureRecognizer();
CalendarioClick.Tapped += async (s, e) =>
{
CmdCalendario.BackgroundColor = Color.Pink;
//Delay 2000ms, change the time you want here
await Task.Delay(2000);
Navigation.PushAsync(new CalendarioFiscal());
};
CmdCalendario.GestureRecognizers.Add(CalendarioClick);
请参阅:什么不起作用?你有任何错误吗?没有,但当我点击图像时,它会调用另一个屏幕,因此在调用屏幕之前,不会显示另一个粉红色的图像。因此,它只显示调用屏幕后的图像,如果我按下后退按钮,则更改图片@GeraldVersluisMaybe删除Navigation.PushAsyncnew CalendarIOFinancial;会阻止它离开吗?你想在nagivating之前延迟吗?是的,我想能够更改图像,然后导航到@MikaelDúiBolinder@amarotati,那么您希望在导航开始之前有一个短的延迟,比如500毫秒或1000毫秒?