Đoạn mã sau ném một System.ArgumentException bí mật từ phương thức RenderAsync "Giá trị không nằm trong phạm vi dự kiến." Nếu mặt khác, Canvas của tôi là một phần của cây XAML hiển thị mà nó hoạt động. Không thể hiển thị một số XAML không được hiển thị trên màn hình?Trong WinRT C# làm thế nào để lưu một cây XAML ngoài màn hình bằng cách sử dụng RenderTargetBitmap?
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);
tôi gần như nghĩ rằng câu trả lời này sẽ làm việc, nhưng không có may mắn, tôi đoán nó chỉ áp dụng cho WPF: Create WPF element offscreen and render to bitmap
UPDATE:
Cho đến nay ý tưởng tốt nhất của tôi là để đặt Canvas Tôi muốn hiển thị vào trang hiện có nhưng đặt nó bên dưới thông thường là UIElement gốc lấp đầy màn hình để người dùng không thể nhìn thấy màn hình:
<Grid>
<Canvas x:Name="HiddenCanvas"/>
<Grid x:Name="mainElement" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
</Grid>
</Grid>
Nó không đẹp nhưng nó có vẻ hoạt động. Cho phép xem liệu có ai có thể làm tốt hơn các giải pháp