Re: WPF: Экспорт Canvas'a в BMP
От: MxMsk Португалия  
Дата: 01.05.11 21:43
Оценка:
Здравствуйте, czz, Вы писали:

czz> // Get the size of canvas

czz> Size size = new Size(surface.Width, surface.Height);
czz> // Measure and arrange the surface
czz> // VERY IMPORTANT
czz> surface.Measure(size);
czz> surface.Arrange(new Rect(size));
czz> surface.UpdateLayout();
Вместо всего этого правильнее вызвать InvalidateMeasure и UpdateLayout. И далее использовать ActualWidth и ActualHeight канваса для создания битмэпа.

czz> // Create a render bitmap and push the surface to it

czz> RenderTargetBitmap renderBitmap =
czz> new RenderTargetBitmap(
czz> (int)size.Width,
czz> (int)size.Height,
czz> 96d,
czz> 96d,
czz> PixelFormats.Pbgra32);
czz> renderBitmap.Render(surface);
Думаю, здесь стоит тормознуть и загрузить битмэп в Image, чтобы быть уверенным в отсутствии ошибки в самом экспорте в файл.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.