【发布时间】:2013-01-19 19:57:12
【问题描述】:
我查看了十几个示例(并尝试了多个示例),但我找不到在 WPF 中轻松设置可在 Windows 商店中使用的 RenderTargetBitmap 或 WriteableBitmap 的方法。
最终我想直接操作一个数组,我可以以 30 Hz 左右的频率将它放到屏幕上。
这个例子可能让我最接近:
DrawingVisual MyDrawingVisual = new DrawingVisual();
//Open its drawing context:
DrawingContext MyDC = MyDrawingVisual.RenderOpen();
// At this point you can draw
Pen p = new Pen();
p.Thickness = 5;
p.Brush = new SolidColorBrush(Colors.Green);
MyDC.DrawLine(p, new Point(1.0, 1.0), new Point(10.0, 10.0));
RenderTargetBitmap MyRenderTargetBitmap = new RenderTargetBitmap(100, 100, 96, 96, PixelFormats.Default);
MyRenderTargetBitmap.Render(MyDrawingVisual);
RenderTargetBitmap rtbm = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32);
rtbm.Render(MyCanvas);
上面的例子对我来说有两个问题:它似乎没有在屏幕上绘制任何东西,而且我认为 MyDC 使用 DirectX(我猜它不适用于 Windows App Store)。
编辑:
这个 MS 示例正是我想要的!
【问题讨论】:
-
当这真的是关于 Windows 应用商店应用程序时,它不可能是 WPF。您想绘制背景位图并在 Windows 应用商店应用程序中显示它吗?
-
@Clemens:据我所知,您无法在 Windows 商店应用程序中使用 GDI、DirectX 等进行绘图,因此您只能使用 WPF
-
这不是 WPF。构建 Windows Store App 时,平台为Windows Runtime,简称 WinRT。它还具有 XAML,并且与 Silverlight 的比较多于 WPF,但它是另一回事。另见this answer。
标签: c# wpf visual-studio-2012