我希望能自己弄清楚這一點,但經過幾個小時的谷歌搜索,我有無數的例子,我無法工作。這是場景。希望有人能提供一個簡單的解決方案。在VB中使用DrawImage的簡單例子WPF
我有一個VB WPF應用程序。它與特定的Web服務通信以獲取圖像的Base64字符串。我能夠把這個字符串轉換使用下面的代碼爲System.Drawing.Image對象:
Public Function Base64ToImage(ByVal base64str As String) As System.Drawing.Image
'Setup image and get data stream together
Dim img As System.Drawing.Image
Dim MS As System.IO.MemoryStream = New System.IO.MemoryStream
Dim b64 As String = base64str.Replace(" ", "+")
Dim b() As Byte
'Converts the base64 encoded msg to image data
b = Convert.FromBase64String(b64)
MS = New System.IO.MemoryStream(b)
'creates image
img = System.Drawing.Image.FromStream(MS)
Return img
End Function
我再打開一個彈出窗口和所有我想要做的是顯示在彈出窗口這一形象。我發現的例子依賴於使用PaintEventArgs,但我不確定這是如何工作的,並且在這種情況下它看起來不相關。我已經能夠做的最好的是讓圖像顯示在屏幕上,但實際上並沒有附加到彈出窗口。我這樣做,用下面的代碼,這是彈出窗口類中的方法:
Dim img as System.Drawing.Image = Base64ToImage(base64string)
Dim gr As System.Drawing.Graphics = System.Drawing.Graphics.FromHwnd(New Interop.WindowInteropHelper(Me).Handle)
gr.DrawImage(img, 10, 10, 500, 800)
gr.Dispose()
這顯示的圖像,但它似乎出現在屏幕的10,10的位置,而不是彈出窗口。
WPF不關心'System.Drawing'。從項目中刪除所有對此的引用。 –