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);
しかし今、幅600pxのScrollViewerと1000pxのコンテンツがあります。このコードを使用し、HorizontalOffset が 0 の場合 (つまり、まったくスクロールしていない場合)、すべて問題なく、ScrollViewer-Control の画像が正常に表示されます。
ただし、ScrollView をスクロールして、同じ方法でスナップショットを作成すると。スナップショットはすべてめちゃくちゃです。
スクロールビューの「0 から 600」領域でできるように、スクロールビュー コンテンツの「400 から 1000」領域のスナップショットを作成するにはどうすればよいですか?