如何解决如何截取屏幕截图并将其从程序中分享到社交媒体Facebook、Telegram 等?
我在页面上做了一个截图,我想把它分享到社交媒体。我不知道如何将图像分享到社交媒体。我只知道如何分享文字,但我需要分享图片。请帮我分享程序截图
<ContentPage.Content>
<StackLayout HeightRequest="30" WidthRequest="30">
<StackLayout x:Name="header">
<Frame
Padding="3"
BackgroundColor="White"
BorderColor="#DBDBDB"
CornerRadius="15"
HasShadow="False">
<StackLayout Orientation="Horizontal">
<StackLayout
Margin="5,0"
HorizontalOptions="Start"
Orientation="Horizontal">
<StackLayout VerticalOptions="Center">
<Label
FontSize="16"
HorizontalOptions="Start"
Text="USD"
TextColor="Black" />
<Label
FontSize="10"
HorizontalOptions="Start"
Text="US Dollar"
TextColor="Black" />
</StackLayout>
</StackLayout>
</StackLayout>
</Frame>
</StackLayout>
<Button x:Name="ShareButton" Text="Share" />
<Image x:Name="result" />
</StackLayout>
</ContentPage.Content>
public async void Button_Clicked(Object o,EventArgs e)
{
var image =await header.CaptureImageAsync();
result.source = ImageSource.FromStream(() => image);
}
这是我如何制作屏幕截图的代码。请帮助我将图像从程序分享到社交媒体
解决方法
您可以使用 Xamarin.Essentials 来实现所有这些。
例如,如果您想分享屏幕截图,您可以save the screenshot到一个文件(演示代码):
async Task<string> CaptureScreenshotAsync()
{
var screenshot = await Xamarin.Essentials.Screenshot.CaptureAsync();
var stream = await screenshot.OpenReadAsync();
var file = Path.Combine(FileSystem.CacheDirectory,"screenshot.png");
using (FileStream fs = File.Open(file,FileMode.CreateNew))
{
await stream.CopyToAsync(fs);
await fs.FlushAsync();
}
return file;
}
然后是 share this file(演示代码):
async Task ShareFile(string filename,string filepath)
{
await Share.RequestAsync(new ShareFileRequest()
{
Title = filename,File = new ShareFile(filepath)
});
}
注意:您应该确保文件扩展名正确。我在共享或打开没有扩展名或文件扩展名错误的文件时遇到了一些问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。