我有一个方法,每次用户执行一个动作时触发,在这个方法中,我想触发图像的颜色,以便每次调用方法时改变颜色/亮起。
是否有一种以编程方式更改图像颜色的简单方法?我无法看到附加到图像上的任何明显的方法或属性。
所以下面的方法如下:不确定如何设置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;
}
答案 0 :(得分:2)
它会做什么设置? WPF应该如何猜测&#34;背景&#34;你记得吗?可以称之为&#39;背景&#39;有几件事情。另外,WPF如何猜测您认为背景区域的大小?
让我们从图像在其整个区域显示位图(或类似图片)的事实开始,因此直接Foreground
或Background
在这里毫无意义。它们会立即透过位图透支。它不像TextBox或Canvas。
这可能是Image没有这种财产的原因。
-
如果你的位图本身有一个&#34;背景&#34; (即,蓝天,天空=背景上的树的绘图),仍然位图的内容。 WPF不是图像编辑程序,不会轻易改变它。如果你想改变&#34;背景&#34;使用图像,您可以加载位图,修改其像素,并将修改后的位图加载到图像控件中。或者在渲染阶段应用一些智能滤镜(所谓的&#34;效果&#34;)。
或者,如果你的位图是透明的(例如,带有alpha通道的PNG,一个完全alpha化透明像素的树),你想要&#34;一些背景&#34;透过那个&#34;透明的间隙&#34;,你必须设置不图像本身的背景,但是图像所在的组件。所以,如果你有例如:
<Grid> <Image Source=.... /> </Grid>
然后在Background
上应用Grid
。放置在蓝色网格上的透明图像看起来就像是在蓝色背景上,就像在蓝色桌子上放置的玻璃上绘图一样。事实上,Grid在这里只是形成背景。您可以通过这种方式获得任何布局或效果。如果您不想在该颜色中使用整个网格,则可以注入另一个网格:
<Grid>
<Grid Background="Blue" Margins="30,30,30,30"> <Image Source=.... /> </Grid>
</Grid>
或者你喜欢什么。
或者,如果你的意思是&#34;背景&#34;当Image
以Stretch
属性设置的方式显示的图像控件时,位图不会填满整个区域(Stretch=Uniform
喜欢这样做,除非你仔细设置宽度/高度) - 然后只需看上面。 &#34;区域&#34;只是透明,所以只需在Image下方的组件中添加一些颜色。