2

私はそのようなことをしたい: タグで画像を開き、<image>それに他のタグを追加します。たとえば、緑色の四角形です。その後、一部に長方形を付けた画像のように保存したいと思います。通常、ユーザーは四角形をドラッグ アンド ドロップし、サイズを変更する必要があります。しかし、問題は次のとおりです。どうすれば保存できますか? たとえば、それらすべての親タグを保存する必要があると思いますが、それは可能ですか<grid>?<canvas>

4

1 に答える 1

1
Transform transform = myCanvas.LayoutTransform; 
myCanvas.LayoutTransform = null; Size size = new Size(myCanvas.Width,myCanvas.Height); myCanvas.Measure(size);    
myCanvas.Arrange(new Rect(size)); 
RenderTargetBitmap renderBitmap = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96d, 96d,PixelFormats.Pbgra32); 
renderBitmap.Render(myCanvas);

using (FileStream outStream = new FileStream(path.LocalPath, FileMode.Create))   
{ 
    PngBitmapEncoder encoder = new PngBitmapEncoder(); 
    encoder.Frames.Add(BitmapFrame.Create(renderBitmap)); 
    encoder.Save(outStream);    
} 
myCanvas.LayoutTransform = transform;

詳細な説明(および上記のコードのソース)については、次のブログ投稿を参照してください。

http://denisvuyka.wordpress.com/2007/12/03/wpf-diagramming-saving-you-canvas-to-image-xps-document-or-raw-xaml/

使用するエンコーダーに応じて、PNG、JPGなどで保存できます。

于 2013-01-24T13:19:57.967 に答える