我想將用戶控件的圖像添加到viewbox。 我正在動態創建usercontrol。我正在使用下面的代碼。RenderTargetBitmap問題
private static RenderTargetBitmap CaptureScreen(Visual target, double dpiX, double dpiY)
{
if (target == null)
{
return null;
}
Rect bounds = VisualTreeHelper.GetDescendantBounds(target);
//RenderTargetBitmap rtb = new RenderTargetBitmap((int)(bounds.Width * dpiX/96.0),
// (int)(bounds.Height * dpiY/96.0),
// dpiX,
// dpiY,
// PixelFormats.Pbgra32);
RenderTargetBitmap rtb = new RenderTargetBitmap(596,596,dpiX,
dpiY,
PixelFormats.Pbgra32);
DrawingVisual dv = new DrawingVisual();
using (DrawingContext ctx = dv.RenderOpen())
{
VisualBrush vb = new VisualBrush(target);
ctx.DrawRectangle(vb, null, new Rect(new Point(), bounds.Size));
}
rtb.Render(dv);
return rtb;
}
我正在動態創建用戶控件並將其傳遞給捕獲屏幕方法。
UserControls.UserControl1 uc1 = new UserControls.UserControl1();
visualList.Add(uc1);
for(int i = 0;i<=6;i++)
{
Image img = new Image();
img.Source = CaptureScreen(visualList[i], 96, 96);
img.Margin = new Thickness { Top = 2 };
usingWorkaround.Children.Add(img);
}
VisualTreeHelper.GetDescendantBounds(target)返回空白邊界。這就是爲什麼無法創建屏幕圖像。有沒有其他方法來捕獲動態創建的用戶控件的屏幕?
請解釋如何使用措施和安排 – 2011-02-04 17:28:19
完整的代碼,你的答案。 – 2015-03-16 07:46:29