3
我正在使用此代碼WPF控件的圖像:獲取圖像被裁剪到顯示尺寸
BitmapEncoder imgEncoder = new PngBitmapEncoder();
RenderTargetBitmap bmpSource = new RenderTargetBitmap((int)element.ActualWidth, (int)element.ActualHeight, 150, 150, PixelFormats.Pbgra32);
bmpSource.Render(element);
imgEncoder.Frames.Add(BitmapFrame.Create(bmpSource));
using (MemoryStream ms = new MemoryStream())
{
imgEncoder.Save(ms);
bytes = ms.ToArray();
ms.Position = 0;
Image i = Image.FromStream(ms);
i.Save(@"C:\" + Guid.NewGuid().ToString() + "LARGE.png");
}
麻煩的是ActualHeight/Width
屬性給出的呈現高度和寬度,即所顯示的部分。即使某些控件在屏幕上不可見,即將其放置在滾動查看器中,我仍想保存整個控件的圖像。
如何獲取控件的完整大小/高度,以便bmpSource.Render()將整個控件呈現給圖像?
你是什麼意思可見點,我試着給它一個新的大小和調用updatelayout(),但它恢復到其舊的大小? – Jon
可見點是保證可見的任何點,使用滾動查看器通常比將控件移動到視口更容易滾動視口。 –