2010-03-19 119 views
9

我想显示由两张图像组成的图像。如何将一幅图像叠加到另一幅图像上?

我想图像rectangle.png它上面左手在像素10角落图像sticker.png显示,10

这里是尽可能我得到了,但我该如何结合图像?

Image image = new Image(); 
image.Source = new BitmapImage(new Uri(@"c:\test\rectangle.png")); 
image.Stretch = Stretch.None; 
image.HorizontalAlignment = HorizontalAlignment.Left; 

Image imageSticker = new Image(); 
imageSticker.Source = new BitmapImage(new Uri(@"c:\test\sticker.png")); 

image.OverlayImage(imageSticker, 10, 10); //how to do this? 

TheContent.Content = image; 

回答

12

您需要一个面板才能将两个图像控件添加到。一个网格或画布将允许这个,但我会去与网格,因为它会限制图像控件(从而伸展或缩小它们)。

Image image = new Image(); 
image.Source = new BitmapImage(new Uri(@"c:\test\rectangle.png")); 
image.Stretch = Stretch.None; 
image.HorizontalAlignment = HorizontalAlignment.Left; 

Image imageSticker = new Image(); 
imageSticker.Source = new BitmapImage(new Uri(@"c:\test\sticker.png")); 
imageStiker.Margin = new Thickness(10, 10, 0, 0); 

Grid grid = new Grid(); 
grid.Children.Add(image); 
grid.Children.Add(imageSticker); 

TheContent.Content = grid; 
+0

非常好,这是我用过的方法,只需要添加一个imageSticker.VerticalAlignment = VerticalAlignment.Top; – 2010-03-19 17:25:12

+0

这不是真正的叠加。如果我想在按钮上使用组合图像怎么办?这不会工作。 – bobbyalex 2011-09-05 12:08:01

+0

为什么不呢? Button肯定可以将该网格作为其内容。 – 2011-09-07 17:52:27

2

您可以将一个Image控件放在视图中其他Image控件的顶部。放置在网格或画布中,然后将其中一个图像重叠在另一个上。这也可以让你使用不透明来进行混合,并且工作得很好。

如果你需要让他们进入相同的图像,有几个选项....

你可以做一个WritableBitmap出来的第一形象,然后手工“画”出其他图像的像素上第一个的顶部。然后这可以作为显示器中图像的图像源。

另外,你可以做我上面提到的覆盖,并将其渲染为RenderTargetBitmap。这可以用作图像源。

相关问题