问题描述
我正在尝试在桌面应用程序中使用Win2D。项目正在构建中,但出现运行时错误“未注册请求的Windows运行时类型'Microsoft.Graphics.Canvas.CanvasDevice'”
我知道,要包括Win2D,我需要将引用添加到应用程序的清单文件中。
代码:
private void CaptureMSFSScreen()
{
process = Process.GetProcesses().Where(p => p.ProcessName == "xxxxxxxx").Single();
hwnd = process.MainWindowHandle;
canvasDevice = new CanvasDevice();
GraphicsCaptureItem item = CaptureHelper.CreateItemForWindow(hwnd);
framePool = Direct3D11CaptureFramePool.Create(canvasDevice,DirectXPixelFormat.B8G8R8A8UIntnormalized,1,item.Size);
session = framePool.CreateCaptureSession(item);
framePool.FrameArrived += (s,a) =>
{
using (var frame = framePool.TryGetNextFrame())
{
ProcessFrame(frame);
}
};
item.Closed += (s,a) =>
{
StopCapture();
};
}
清单文件中包含以下部分:
<file name="Microsoft.Graphics.Canvas.dll">
<activatableClass
name="Microsoft.Graphics.Canvas.CanvasDevice"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
<activatableClass name="Microsoft.Graphics.Canvas.UI.Composition.CanvasComposition"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
<activatableClass
name="Microsoft.Graphics.Canvas.Effects.SaturationEffect"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
<activatableClass
name="Microsoft.Graphics.Canvas.Effects.BlendEffect"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
<activatableClass
name="Microsoft.Graphics.Canvas.Effects.GaussianBlurEffect"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
<activatableClass
name="Microsoft.Graphics.Canvas.Effects.ColorSourceEffect"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
<activatableClass
name="Microsoft.Graphics.Canvas.Effects.CompositeEffect"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
<activatableClass
name="Microsoft.Graphics.Canvas.Effects.OpacityEffect"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
<activatableClass
name="Microsoft.Graphics.Canvas.CanvasBitmap"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
<activatableClass
name="Microsoft.Graphics.Canvas.Effects.BorderEffect"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"/>
</file>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)