着色图像

Per*_*ion 1 c# wpf image

我想试试一个System.Windows.Controls.Image.图像包含透明区域,我只是想用一种颜色着色非透明区域.

例如,图像为黑色/灰色,将其着色为红色会产生红色渐变,透明区域不受影响.

是否可以在XAML或后面的代码(理想情况下)中为WPF中的图像着色?

谢谢

<Image Name="OverlayImage" Canvas.ZIndex="2" />

示例图片:

在此输入图像描述

Abi*_*n47 5

本回答所述,您可以使用a Rectangle来进行着色.将矩形的源设置OpacityMask为与图像本身相同将确保透明位保持透明.

<Image
    Source="{Binding MyImage}"
    Width="150"
    Height="150" />
<Rectangle Width="150" Height="150">
    <Rectangle.Fill>
        <SolidColorBrush Color="{Binding Color}"/>
    </Rectangle.Fill>
    <Rectangle.OpacityMask>
        <ImageBrush ImageSource="{Binding MyImage}"/>
    </Rectangle.OpacityMask>
</Rectangle>
Run Code Online (Sandbox Code Playgroud)