1
A
回答
4
加載您的XAML文件:
Stream s = File.OpenRead("yourfile.xaml");
Control control = (Control)XamlReader.Load(s);
和創建的BitmapImage:
public static void SaveImage(Control control, string path)
{
using (MemoryStream stream = new MemoryStream())
{
GenerateImage(element, stream);
Image img = Image.FromStream(stream);
img.Save(path);
}
}
public static void GenerateImage(Control control, Stream result)
{
//Set background to white
control.Background = Brushes.White;
Size controlSize = RetrieveDesiredSize(control);
Rect rect = new Rect(0, 0, controlSize.Width, controlSize.Height);
RenderTargetBitmap rtb = new RenderTargetBitmap((int)controlSize.Width, (int)controlSize.Height, IMAGE_DPI, IMAGE_DPI, PixelFormats.Pbgra32);
control.Arrange(rect);
rtb.Render(control);
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(rtb));
png.Save(result);
}
private static Size RetrieveDesiredSize(Control control)
{
control.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
return control.DesiredSize;
}
確保包括正確的庫!這些課程位於System.Windows.Media
。
希望這會有所幫助!
相關問題
- 1. 轉換的IntPtr到BitmapImage的
- 2. 轉換RenderTargetBitmap到BitmapImage的
- 3. XAML轉換到另一個項目
- 4. 移動XAML文件的一部分到另一個XAML文件
- 5. BitmapFrame轉換爲BitmapImage?
- 6. 轉換一個文件到另一個
- 7. 如何轉換字節[]到BitmapImage的
- 8. 內存轉換的BitmapImage
- 9. XAML到XHTML轉換
- 10. XAML到MXML轉換
- 11. XAML到C#轉換
- 12. 的XAML轉換爲XAP文件
- 13. XML到XAML的轉換
- 14. UWP將BitmapImage轉換爲WriteableBitmap
- 15. 將DrawingImage轉換爲BitmapImage
- 16. 將BitmapImage轉換爲字節[]
- 17. 將基色轉換爲BitmapImage
- 18. byte []轉換爲灰度BitmapImage
- 19. 保存BitmapImage到文件
- 20. 如何從一個xaml文件訪問RichTextBox到另一個xaml文件?
- 21. 如何從一個Xaml文件導航到另一個Xaml文件?
- 22. 將xaml文件轉換爲位圖
- 23. 結合Image.Source時如何XAML中創建的字符串值的BitmapImage的轉換?
- 24. XAML到HTML轉換器
- 25. 轉換ComboBox.TextBlock XAML到C#
- 26. 轉換XAML綁定到C#
- 27. XAML到HTML轉換 - WPF RichTextBox
- 28. 導航到另一個XAML文件
- 29. 旋轉的BitmapImage
- 30. WPF XAML在同一個XAML文件
感謝您的快速響應。 – anton 2012-07-25 05:35:17
只做了一個小小的編輯:將SaveImage方法中的**元素** var重命名爲** control **。 – anton 2012-07-25 07:04:52
幾個問題: 1.如何控制輸出位圖的分辨率? 2.我如何知道使用哪個DPI? – anton 2012-07-25 08:11:46