2014-04-24 49 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

完美!谢谢你让我觉得自己像个白痴! :) –