2014-04-24 50 views
0

在Microsoft文檔和論壇中查找答案後,我很茫然。我加載一個PNG圖像作爲一個InkCanvas(WPF)的工作正常的背景,但是,它始終調整圖像的大小,儘管圖像的大小,儘管圖像大小。WPF C#防止背景調整大小作爲墨水背景加載時Canvas

這是我的最後一次嘗試沒有成功:

  BitmapImage ii = new BitmapImage(new Uri(path)); 
      Image img = new Image(); 

      img.Stretch = Stretch.None; 
      img.Source = ii; 
      InkCanvas1.Background = new ImageBrush(ii); 

下面是它看起來像使用Stretch.None和Stretch.Fill

enter image description here

這裏就是我想實現:

enter image description here

可以這樣做嗎?

+0

你想圖像刷到超出墨跡畫布:設置在ImageBrush代替Stretch財產? –

+0

不一定,我希望圖像的寬高比大小適合最大寬度或最大高度以及畫布頂部或底部的空白(取決於風景或肖像圖像)。 –

+0

你可以發佈快照現在的樣子嗎?什麼是期望的輸出? –

回答

2

問題是,您正嘗試在您未使用的Image對象上設置屬性,而忽略您正在使用的ImageBrush上的相同設置。在這種情況下,Image剛剛被丟棄,ImageBrush恰好使用相同的源圖像。所以

BitmapImage ii = new BitmapImage(new Uri(path)); 

    ImageBrush imageBrush = new ImageBrush(ii); 
    imageBrush.Stretch = Stretch.Uniform; 
    InkCanvas1.Background = imageBrush; 
+0

完美!謝謝你讓我覺得自己像個白癡! :) –