Как правильно печатать изображения с помощью 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));
Другие вопросы по тегам