Create WriteableBitmap from UIControl WPF

本文关键字:WPF UIControl from WriteableBitmap Create | 更新日期: 2023-09-27 18:06:49

我目前正在将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;

其中scene是控件。当把它放入WPF时,writeablebitmap类没有重载,它以UIElement和Transform作为参数。首先,我想知道为什么会这样?其次,我想知道是否有一种方法来控制writeablebitmap

Create WriteableBitmap from UIControl WPF

我相信您会想要使用RenderTargetBitmapCroppedBitmap:

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;

从那里开始。

免责声明:

你可能需要使用不同的重载和什么不做你想做的。