我知道如何在WPF中制作快照。
draggableObject = new Image();
AssociatedObjectParent.Children.Add(draggableObject);
Grid panel = AssociatedObject as Grid;
draggableObject.Height = panel.ActualHeight;
draggableObject.Width = panel.ActualWidth;
DrawingVisual dv = new DrawingVisual();
using (DrawingContext dc = dv.RenderOpen())
{
VisualBrush vb = new VisualBrush(AssociatedObject);
dc.DrawRectangle(vb, null, new Rect(new Point(0,0), new Size(draggableObject.Width, draggableObject.Height)));
}
double x = draggableObject.Width;
double y = draggableObject.Height;
RenderTargetBitmap renderTargetTd = new RenderTargetBitmap((int)x, (int)y, 96, 96, PixelFormats.Default);
RenderOptions.SetBitmapScalingMode(renderTargetTd, BitmapScalingMode.Fant);
RenderOptions.SetEdgeMode(renderTargetTd, EdgeMode.Aliased);
renderTargetTd.Render(dv);
但是现在我的ScrollViewer宽度为600px,内容为1000px。 当我使用这个代码并且我的horizontalOffset为0时(所以我还没有滚动),那么一切都很好,我得到了ScrollViewer-Control的图像就好了。
然而,当我滚动ScrollView并以同样的方式制作快照时。快照都搞砸了。
如何制作可见' 400到1000'的快照?滚动视图内容的区域就像我可以使用' 0到600' scrollview的区域?