如何截屏并从程序分享到社交媒体(Facebook、Telegram 等)?

How to take screenshot and share it from program to social media(Facebook,Telegram and other)?

我在页面上截屏并想分享到社交媒体。我不知道如何将图像分享到社交媒体。我只会分享文字,但我需要分享image.Please 帮我分享程序截图

 <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,0,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);

        }

这是我制作的代码 screenshot.Please 帮助我将图像从程序分享到社交媒体

你可以使用 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)
            });
}

注意:您应该确保文件扩展名正确。我在共享或打开没有文件扩展名或文件扩展名错误的文件时遇到了一些问题。