如何在WPF中叠加图像?

Pau*_*aul 4 c# wpf canvas

我有两个图像需要重叠。

例如,我需要在实心矩形顶部有一个实心圆。所以,我可以看到整个圆,但只能看到矩形的角。我不希望圆圈是透明的。原件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
Run Code Online (Sandbox Code Playgroud)

但是,如果我调用此函数两次,第二个图像(圆形)完全覆盖矩形,因此,我最终会看到画布的背景而不是矩形的角。

我想我需要合并两个图像然后绘制它们。我该怎么做呢?

Gop*_*ope 5

实际上,您可以在 XAML 中使用普通的 Grid。只需将 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>
Run Code Online (Sandbox Code Playgroud)