gpt4 book ai didi

c# - Xamarin 中的异步按钮事件

转载 作者:行者123 更新时间:2023-12-04 14:12:29 25 4
gpt4 key购买 nike

我正在尝试使用 Xamarin Forms 媒体插件。我在尝试获取我的按钮时被绊倒了,在我的 MainPage.XAML 文件中调用我的 MainPage.Xaml.CS 文件中的异步函数。

代码的第一行给我带来了问题:takePhoto.Clicked += async (sender, args) =>

“拍照”是我的 app.xaml 文件中按钮的名称,但无论我尝试什么,我似乎都无法在我的 app.xaml.cs 中获取我的按钮名称,所以我不知道如何调用这个异步函数。

这是库用来使用插件拍照的代码——这段代码在我的 App.Xaml.CS 文件中:

takePhoto.Clicked += async (sender, args) =>
{
await CrossMedia.Current.Initialize();

var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});

if (file == null)
return;

image.Source = ImageSource.FromStream(() =>
{
var stream = file.GetStream();
file.Dispose();
return stream;
});
};

我的按钮在 App.Xaml 页面中,如下所示:

<Button ClassId="TakePicture"
Text="Take Picture"
Margin="100"
HorizontalOptions="CenterAndExpand"
/>

这可能是一个简单的问题。通常我会在上面截取的代码中添加 Clicked = callFunction() 属性,但如果函数是异步的,我不知道该怎么做。如果有任何指导,我将不胜感激。

最佳答案

你想多了 - 只需在处理程序签名中使用 async 关键字,而不是在 XAML 中

<Button ClassId="TakePicture"
Clicked="TakePhoto"
Text="Take Picture"
Margin="100"
HorizontalOptions="CenterAndExpand"
/>

然后在后面的代码中

protected async void TakePhoto(object sender, EventArgs a)
{
...
}

关于c# - Xamarin 中的异步按钮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63134633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com