我有两张需要重叠的图片。
对于前 - 我需要一个实心矩形顶部的实心圆。所以,我可以看到整个圆圈,但只能看到矩形的角落。我不希望圆圈透明。原始circle.png
没有矩形边框。它的边界仅沿着圆的边界。因此,理想情况下,整个圆圈不应与矩形重叠。
这是显示图像的代码:
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri(imgpath, UriKind.Absolute);
src.CacheOption = BitmapCacheOption.OnLoad;
src.EndInit();
ImageBrush ib = new ImageBrush(src);
ib.Viewbox = new Rect(UVRectangle.X / src.PixelWidth, UVRectangle.Y / src.PixelHeight, UVRectangle.Width / src.PixelWidth, UVRectangle.Height / src.PixelHeight);
gr.Background = ib; //gr is of type Grid
但是,如果我将此函数调用两次,则第二个图像(圆圈)完全覆盖矩形,因此,我最终会看到画布的背景而不是矩形的角。 / p>
我想我需要合并这两个图像然后再绘制它们。我应该怎么做呢?
答案 0 :(得分:2)
实际上你可以在XAML中使用普通网格。只需在网格中放置2个图像即可。他们会像这样放在一起:
<Grid>
<Image Source="/ProjectName;component/Folder/Image1.png"
Width="24"
Height="24" />
<!-- Image above Image1 -->
<Image Source="/ProjectName;component/Folder/Image2.png"
Width="24"
Height="24" />
</Grid>
答案 1 :(得分:1)
您在第二次调用时覆盖属性Background。 如果以编程方式将两个图像添加到网格中,它将起作用。变化:
gr.Background = ib;
要:
Image image = new Image();
image.Source = ib.ImageSource;
gr.Children.Add(image);