3

WPF UserControl ライブラリを作成しました。そして、各 UserControl (デフォルト設定) のベクター画像をドキュメントに掲載したいと思います。私の質問は次のとおりです: UserControl のベクター画像を作成するにはどうすればよいですか?

ご尽力いただきありがとうございます。

4

1 に答える 1

2

ベクター画像をキャプチャするのは難しそうですが、コントロールはベクター グラフィックのみで構成されていますか? png または bmp を取得したいだけの場合は、以下のコードが役立ちます。

ImageCapturer.SaveToPng(AnyControl, "Capture.png");

class ImageCapturer
{               
    public static void SaveToBmp(FrameworkElement visual, string fileName)
    {
        var encoder = new BmpBitmapEncoder();
        SaveUsingEncoder(visual, fileName, encoder);
    }

    public static void SaveToPng(FrameworkElement visual, string fileName)
    {
        var encoder = new PngBitmapEncoder();
        SaveUsingEncoder(visual, fileName, encoder);
    }

    private static void SaveUsingEncoder(FrameworkElement visual, 
                 string fileName, BitmapEncoder encoder)
    {
        RenderTargetBitmap bitmap = new RenderTargetBitmap(
               (int)visual.ActualWidth, 
               (int)visual.ActualHeight, 96, 96, PixelFormats.Pbgra32);
        bitmap.Render(visual);
        BitmapFrame frame = BitmapFrame.Create(bitmap);
        encoder.Frames.Add(frame);

        using (var stream = File.Create(fileName))
        {
            encoder.Save(stream);
        }
    }
}
于 2013-04-24T02:38:30.917 に答える