C# 如何通过编程更改图像颜色?

C# 如何通过编程更改图像颜色?,c#,wpf,image,background-color,C#,Wpf,Image,Background Color,我有一个方法,每次用户执行操作时都会触发该方法,在该方法中,我希望在每次调用该方法时触发图像的颜色以更改颜色/照明 有没有一种简单的方法可以通过编程更改图像的颜色?我看不到任何明显的方法或属性来做这个附加到图像 因此,下面的方法如下所示,只是不确定如何为BoxBagImage void matcher_GestureMatch(Gesture gesture) { lblGestureMatch.Content = gesture.Name; scoreCntr++;

我有一个方法,每次用户执行操作时都会触发该方法,在该方法中,我希望在每次调用该方法时触发图像的颜色以更改颜色/照明

有没有一种简单的方法可以通过编程更改图像的颜色?我看不到任何明显的方法或属性来做这个附加到图像

因此,下面的方法如下所示,只是不确定如何为
BoxBagImage

void matcher_GestureMatch(Gesture gesture)
{
     lblGestureMatch.Content = gesture.Name;
     scoreCntr++;

     boxBagImage.    // <-- don't see any color or background property belonging to the image
     lblScoreCntr.Content = scoreCntr;            
}
void matcher\u手势匹配(手势)
{
lblGestureMatch.Content=手势.Name;
记分器++;

WPF应该如何猜出你想到的是什么“背景”?还有几个可以称为“背景”的东西。WPF如何猜测你认为背景的面积有多大?

让我们从这样一个事实开始:图像在其整个区域显示位图(或类似的),因此直接的
前景
背景
在这里是毫无意义的。它们会立即被位图覆盖。它不像文本框或画布

这可能就是为什么图像没有这样的属性

--

如果位图本身有“背景”(即蓝天上的树的图形,天空=背景),它仍然是位图的内容。WPF不是图像编辑程序,不会为您轻松更改。如果您想更改“背景”使用图像,您可以加载位图,修改其像素,并将修改后的位图加载到图像控件中。或者在渲染阶段应用一些智能过滤器(所谓的“效果”)

或者,如果位图是透明的(例如,带有alpha通道的PNG,完全字母化的透明像素上的树),并且希望通过“透明间隙”看到“某些背景”,则您必须设置的背景,而不是图像本身,而是图像所在的组件。因此,如果您有,例如:

<Grid>   <Image Source=.... />   </Grid>
或者你喜欢的任何东西

或者,如果您指的是图像控件的“背景”,当
图像
拉伸
属性设置为位图不会填充整个区域(
拉伸=均匀
喜欢这样做,除非您仔细设置宽度/高度)-那么只需查看上方的“区域”是透明的,所以只需给图像下方的组件添加一些颜色即可

<Grid>
    <Grid Background="Blue" Margins="30,30,30,30"> <Image Source=.... /> </Grid>
</Grid>