1

我想在 Visual Studio 2013 中创建一个通用应用程序,该应用程序从Canvas使用代码动态生成的图像创建图像。如果我在 UI 上显示画布(Grid例如,在 a 中)就可以了。如果我不显示画布,应用程序会崩溃并显示以下消息:

值不在预期范围内。

有我使用的代码:

Canvas cn = new Canvas();
cn.Height = 100;
cn.Width = 100;
cn.Visibility = Visibility.Visible;
Button but = new Button();
Rectangle rect = new Rectangle();
rect.Width = 100;
rect.Height = 100;
rect.Margin = new Thickness(0);
SolidColorBrush bruch = new SolidColorBrush();
bruch.Color = Colors.Blue;
rect.Fill = bruch;
but.Width = 50;
but.Height = 50;
but.Content = "23";
but.Visibility = Visibility.Visible;
cn.Children.Add(rect);
cn.Children.Add(but);
but.Margin = new Thickness(25, 25, 0, 0);
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(cn, 100, 100);
outputImage.Source = renderTargetBitmap;

我不想在 UI 上显示画布,因为我打算使用BackgroundTask.

这是我的示例项目

4

1 回答 1

4

Windows Phone 应用可以使用XamlRenderingBackgroundTask在后台任务中呈现。建议将 C++ 用于后台任务,以保持较低的资源使用率。

有关示例,请参阅从后台任务示例更新磁贴。

Windows 应用商店应用不支持 XamlRenderingBackgroundTask。在 Windows 上,RenderTargetBitmap 不能从后台任务中使用,并且要求目标 UIElement 位于主视觉树中。

于 2015-03-25T19:04:51.570 回答