Как правильно печатать изображения с помощью WPF DocumentPaginator?
Вот мой код, который находится в расширении класса DocumentPaginator
public override DocumentPage GetPage(int pageNumber)
{
BitmapImage source = new BitmapImage();
using (Stream stream = new FileStream(GetPagePath(pageNumber), FileMode.Open))
{
source.BeginInit();
source.StreamSource = stream;
source.CacheOption = BitmapCacheOption.OnLoad;
source.EndInit();
}
var image = new Image { Source = source };
Rect contentBox = new Rect(PageSize);
return new DocumentPage(image, PageSize, contentBox, contentBox);
}
Однако, когда я действительно запускаю этот код, он не загружает мое изображение, а просто печатает пустые страницы.
Как правильно загрузить мое изображение и прикрепить его к DocumentPage
объект?
1 ответ
Вы должны сделать макет элемента управления изображения, вызвав его Measure()
а также Arrange()
методы:
var image = new Image { Source = source };
var size = new Size(source.PixelWidth, source.PixelHeight);
image.Measure(size);
image.Arrange(new Rect(size));