2009-07-14 72 views
3

我正在嘗試在Silverlight3 RTM中使用新的WriteableBitmap,但是我失敗了..在測試期間,所有使用過的示例和演示都無法工作。我明白他們已經稍微改變了類接口,例如刪除了鎖定和釋放方法(仍然在官方文檔頁面中記錄),並且還改變了構造函數(沒有更多像素格式作爲參數,所有位圖將從32位我的理解)。Silverlight 3 WriteableBitmap問題

任何人都能成功地運行一個例子嗎?這裏有一個簡約的例子(我在一些論壇中發現它,並稍加修改);它不工作,沒有位圖顯示

是的,我打電話給它..這裏有一個最小的例子(我發現在網上,稍微修改它);它不起作用,我得到一個空白頁面(XAML包含一個名爲inputImage的圖像控件)。

int imageWidth = 100; 
    int imageHeight = 100; 

    //Create the bitmap 
    WriteableBitmap b = new WriteableBitmap(imageWidth, imageHeight); 
    for (int x = 0; x < imageWidth; x++) 
    { 
     for (int y = 0; y < imageHeight; y++) 
     { 
      // generate a color in 32bit format 
      byte[] components = new byte[4]; 
      components[0] = (byte)(x % 255);  // blue 
      components[1] = (byte)(y % 255);  // green 
      components[2] = (byte)(x * y % 255); // red 
      components[3] = 0;  // unused 

      int pixelValue = BitConverter.ToInt32(components, 0); 

      // Set the value for the 
      b.Pixels[y * imageWidth + x] = pixelValue; 
     } 
    } 

    b.Invalidate(); 
    inputImage.Source = b; 

感謝您的幫助 裏卡多

回答

0

我想你也應該設置寬度和XAML爲100×100的inputImage的才能看到圖像的高度...