【问题标题】:How to use RenderTargetBitmap in RunTime Components using c#如何使用 C# 在运行时组件中使用 RenderTargetBitmap
【发布时间】:2017-10-21 21:56:23
【问题描述】:

当我从 JavaScript 调用组件时。显示错误(未处理的预期 win32)。我在 Windows 10 通用应用程序的运行时组件中使用了 RenderTargetBitmap。更多内容请参考以下代码。

public void Hello() { Task.Run(() => { buttonClick(); }); }
public async void buttonClick()
{
    await SaveImageAsync(Window.Current.Content);
}
private async static Task<RenderTargetBitmap> SaveImage(UIElement ele)
{
    RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
    await renderTargetBitmap.RenderAsync(ele);
    return renderTargetBitmap;
}
public static IAsyncOperation<RenderTargetBitmap> SaveImageAsync(UIElement ele)
{
    return SaveImage(ele).AsAsyncOperation();
}

【问题讨论】:

    标签: javascript c# windows-10-universal


    【解决方案1】:

    目前,RenderTargetBitmap api 在 Javascript 中不可用。 RenderTargetBitmap 是一个 Xaml 类,只呈现 Xaml。如果您访问,它将抛出invalid signature error。有关更多信息,您可以参考RenderTargetBitmap Class。

    【讨论】:

    • 公共密封类 ScreenCapture { public void Hello() { Task.Run(() => { buttonClick(); }); } 公共异步无效 buttonClick() { 等待 SaveImageAsync(); }
    • 私有异步静态任务 SaveImage() { RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();等待 renderTargetBitmap.RenderAsync(Window.Current.Content);返回渲染目标位图; } 公共静态 IAsyncOperation SaveImageAsync() { return SaveImage().AsAsyncOperation(); } } }
    • Hello 方法是一个从 javascript 文件调用的 RunTimeComponent 类。当我调用 Hello() 时,我收到异常,因为 WWAHost.exe 中发生了未处理的 win32 异常
    • 还有其他方法可以从 javascript 中捕获屏幕内容吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多