2012-05-24 56 views
2

我開始與WPF,我的WinForms的一個很好的理解。直接繪製到一個圖片

我想要做的,是拿一把形象的牌,它們拼合在一起,創造,我將在Image控件中顯示較大的圖像。

中的WinForms我會做這個

Bitmap map = new Bitmap(800,800); 
using (Graphics g=Graphics.FromImage(map)) 
{ 

    for (int x = 0; x<8; x++) 
    for (int y = 0; y<8; y++) 
    { 
     g.DrawImage(bmp[x,y],x*100,y*100); 
    } 
} 

pictureBox1.Image=map; 

我沒有測試這是否會編譯或沒有,但我希望你明白我請求的圖片。

我只是在尋找如何做到這一個基本的瞭解,所以我可以使用它,並弄明白。

+0

第一個想法:結帳[WriteableBitmap的(http://msdn.microsoft.com/en-us/library/system.windows .media.imaging.writeablebitmap.aspx),[圖像](http://msdn.microsoft.com/en-us/library/system.windows.controls.image.aspx),以及用於佈局也許[畫布](HTTP ://msdn.microsoft.com/en-us/library/system.windows.controls.canvas.aspx)。 – dowhilefor

+0

你提出的這個概念是正確的解決方法。 – Doomsknight

+0

我建議概念並不在所有的工作,因爲在WPF沒有位圖...這就是爲什麼我問。 –

回答

0

參考完全一樣的問題中描述的位圖的System.Drawing命名空間

繪圖。

Bitmap map = new Bitmap(800,800); 
using (Graphics g=Graphics.FromImage(map)) 
{ 

    for (int x = 0; x<8; x++) 
    for (int y = 0; y<8; y++) 
    { 
     g.DrawImage(bmp[x,y],x*100,y*100); 
    } 
} 
Image.Source=ConvertBitmap(map); 

然後使用這個位圖轉換成一個的BitmapSource

public static BitmapSource ConvertBitmap(System.Drawing.Bitmap source) 
    { 
     return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
         source.GetHbitmap(), 
         IntPtr.Zero, 
         Int32Rect.Empty, 
         System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); 
    }