ContentControl + RenderTargetBitmap + imagem vazia

Estou tentando criar algumas imagens do gráfico sem nunca exibi-los na tela. Estive nisso por um bom tempo e tentei muitas coisas diferentes, mas nada parece funcionar. O código funciona perfeitamente se eu exibir o gráfico em uma janela primeiro, mas se eu não exibi-lo em uma janela, o bitmap será apenas branco com uma borda preta (não faço ideia do porquê).

Tentei adicionar o gráfico a uma borda antes de renderizar e atribuir à borda uma borda verdeBrush. No bitmap, vejo a borda verdePincel, em seguida, a borda preta e o fundo branco, mas nenhum gráfico. O gráfico não está contido em uma fronteira preta, então não sei de onde isso vem.

Eu tentei adicionar o gráfico a uma janela sem chamar window.Show () e novamente recebo a borda preta e o fundo branco. No entanto, se eu chamar window.Show (), o bitmap contém o gráfico.

Eu tentei usar um drawingVisual como explicadoaqui, mesmo resultado.

Aqui está o código (não incluindo a adição do elemento a uma borda ou janela):

private static BitmapSource CreateElementScreenshot(FrameworkElement element, int dpi)
{
    if (!element.IsMeasureValid)
    {
        Size size = new Size(element.Width, element.Height);
        element.Measure(size);
        element.Arrange(new Rect(size));
    }

    element.UpdateLayout();

    var scale = dpi/96.0;

    var renderTargetBitmap = new RenderTargetBitmap
        (
            (int)(scale * element.RenderSize.Width),(int)(scale * element.RenderSize.Height),dpi,dpi,PixelFormats.Default
        );

    // this is waiting for dispatcher to perform measure, arrange and render passes
    element.Dispatcher.Invoke(((Action)(() => renderTargetBitmap.Render(element))), DispatcherPriority.Render);

    return renderTargetBitmap;
}

Nota: O gráfico é um ContentControl.

Existe alguma maneira de obter o gráfico para renderizar sem exibi-lo em uma janela primeiro?

questionAnswers(1)

yourAnswerToTheQuestion