В WinRT C # как сохранить внеэкранное дерево XAML с помощью RenderTargetBitmap?

Следующий код генерирует загадочное исключение System.ArgumentException из метода RenderAsync "Значение не попадает в ожидаемый диапазон ». С другой стороны, если мой Canvas является частью видимого дерева XAML, это работает. Разве нельзя сделать какой-нибудь XAML, который нет отображается на экране?

Canvas c = new Canvas();
c.Width = 40;
c.Height = 40;
c.Background = new SolidColorBrush(Color.FromArgb(0xff, 0x80, 0xff, 0x80));

RenderTargetBitmap x = new RenderTargetBitmap();
await x.RenderAsync(c);

Я почти думал, что этот ответ будет работать, но не повезло, я думаю, это относится только к WPF:Создать WPF-элемент вне экрана и рендерить в растровое изображение

ОБНОВИТЬ:

Пока что моя лучшая идея - поместить Canvas, на котором я хочу сделать рендеринг, на видимую в данный момент страницу, но расположить его под тем корневым UIElement, который заполняет экран так, чтобы он не отображался.т видимы для пользователя:


    
    
    

Это н'не красиво, но, похоже, работает. Посмотрим, сможет ли кто-нибудь добиться большего

Ответы на вопрос(2)

Ваш ответ на вопрос