Как обменять D3DImage между приложением WPF и Windows (для копирования / вставки)? - PullRequest
1 голос
/ 06 мая 2011

Я работаю над выполнением операций копирования и вставки в моем приложении для построения диаграмм.Поэтому мне нужно ...

  • Преобразовать растровое изображение WPF в D3DImage (для более поздней реализации "Копировать") и

  • ПреобразоватьD3DImage к растровому изображению WPF (для последующей реализации «Вставить»).

Обратите внимание, что для этого требуется «взаимодействие» между приложением WPF и собственным Win-32.

Как это сделать, как можно короче (две функции, в идеале)?

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Вы, вероятно, нашли свой ответ за последние полгода, но вот как конвертировать D3DImage в WPF в BitmapSource (в данном случае я использовал vb.net):

Public Function GetCurrentImage() As BitmapSource

        Dim width As Integer = D3DImage.PixelWidth
        Dim height As Integer = D3DImage.PixelHeight

        Dim dv As New DrawingVisual()
        Using dc As DrawingContext = dv.RenderOpen()
            dc.DrawImage(D3DImage, New Rect(0, 0, width, height))
        End Using

        Dim rtb As New RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32)
        rtb.Render(dv)

        Return BitmapFrame.Create(rtb)
    End Function

Вы можете найти его вC # в WPFMediaKit.

0 голосов
/ 10 мая 2011

Что вы подразумеваете под D3DImage?

В WPF есть элемент управления / поверхность, который называется D3DImage, но кажется, что вы имеете в виду растровый формат.Вы пытаетесь поместить данные в буфер обмена?Если это так, вам не нужно взаимодействие.Просто используйте API буфера обмена, чтобы поместить изображение в буфер обмена и прочитать его из буфера обмена.

...