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>