在win8应用程序中,如何从画布控件(win2d)中获取绘图会话,或者如何在画布控件上从function:canvasControl_Draw中绘制图像。
发布于 2015-09-15 04:47:53
您不能-这是CanvasControl提供的策略的关键部分。
这可确保:
如果你想强制重绘,你可以使用CanvasControl.Invalidate()。
或者,您可能会发现要渲染到屏幕外的CanvasRenderTarget (您可以调用CreateDrawingSession)。然后在CanvasControl_Draw中使用DrawImage将呈现目标绘制到控件。
发布于 2017-02-21 01:04:20
如果您的目标只是渲染到图像,则可以在不使用CanvasControl.Draw方法的情况下执行此操作。下面是我的一个应用程序中的一些代码,用于渲染图像并将其保存到文件中(PageRenderer是我的类,负责渲染):
public async Task GenerateThumbnailAsync(IRandomAccessStream stream, int width, int height, CanvasBitmapFileFormat imageType)
{
CanvasDevice device = CanvasDevice.GetSharedDevice();
PageRenderer renderer = new PageRenderer(device);
using (CanvasRenderTarget offscreen = new CanvasRenderTarget(device, width, height, 96))
{
using (CanvasDrawingSession ds = offscreen.CreateDrawingSession())
{
ds.Clear(Colors.Black);
renderer.DrawPage(ds);
}
await offscreen.SaveAsync(stream, imageType);
}
}https://stackoverflow.com/questions/32526653
复制相似问题