我目前正在将Silverlight应用程序转换为WPF。在我的silverlight应用程序中,我有代码
WriteableBitmap sceneBitmap = new WriteableBitmap(scene, new TranslateTransform() { Y = 10 });
WriteableBitmap newone = TimelineMainHelper.CropImage(sceneBitmap, 0, 0, sceneBitmap.PixelWidth, sceneBitmap.PixelHeight - 25);
newone.Invalidate();
img.Source = newone;
场景是控件。 将它放入WPF时,writeablebitmap类没有重载,它将UIElement和Transform作为参数。首先我想知道为什么会这样?其次,我想知道是否有办法控制可写的位图
答案 0 :(得分:1)
相反,您会想要使用RenderTargetBitmap
和CroppedBitmap
我相信:
RenderTargetBitmap rtb = new RenderTargetBitmap((int)scene.ActualWidth, (int)scene.ActualHeight, 96, 96, System.Windows.Media.PixelFormats.Pbgra32);
rtb.Render(this.sceneBitmap);
CroppedBitmap crop = new CroppedBitmap(sceneBitmap, new Int32Rect(0, 0, (int)sceneBitmap.ActualWidth, (int)sceneBitmap.ActualHeight));
然后你可以做类似的事情:
System.Windows.Controls.Image img = new Image();
img.Source = crop;
从那里开始。
<强>声明:强>
您可能需要使用不同的重载以及不能完全按照您的意愿执行的操作。我只是猜了一下你的片段会传递什么参数。