C# 在WPF中,如何在图像上绘制矩形而不使颜色褪色和透明?

C# 在WPF中,如何在图像上绘制矩形而不使颜色褪色和透明?,c#,wpf,xaml,C#,Wpf,Xaml,我在WPF中有一个图像控件,希望在更改不透明度时在图像上创建高亮显示,而不会使矩形的颜色褪色。这就是我希望它看起来的样子: 但我明白了: 这是我现在的代码 <Grid> <Image x:Name="img" Stretch="Uniform" VerticalAlignment="Top" Hor

我在WPF中有一个图像控件,希望在更改不透明度时在图像上创建高亮显示,而不会使矩形的颜色褪色。这就是我希望它看起来的样子:

但我明白了:

这是我现在的代码

   <Grid>
       <Image 
            x:Name="img"
            Stretch="Uniform"
            VerticalAlignment="Top"
            HorizontalAlignment="Center"
            RenderOptions.BitmapScalingMode="HighQuality"
            UseLayoutRounding="True"
            Source="Images/Doc.bmp" />
        <Canvas>
            <Rectangle
                Width="300"
                Fill="Yellow"
                Opacity=".5"
                Height="100"
                Canvas.Top="200"
                Canvas.Left="100" />
        </Canvas>
    </Grid>


要创建第一幅图像的效果,我需要对矩形做什么?

这无法处理图像顶部的填充矩形。如果您能够将BMP转换为具有透明背景的PNG,则可以将矩形放在图像后面。否则,您唯一的选择就是修改位图的像素值。您认为这可以在WPF中实现吗@克莱门斯