我正在开发工具栏控件,需要想出某种效果来使按钮变灰或出现某种情况。为我的PNG图像按钮创建禁用状态
所以,假设我有PNG图标,我想以某种方式“变色”它们。这可以通过XAML来实现吗?或者我需要为此编写代码?任何指针?
我正在开发工具栏控件,需要想出某种效果来使按钮变灰或出现某种情况。为我的PNG图像按钮创建禁用状态
所以,假设我有PNG图标,我想以某种方式“变色”它们。这可以通过XAML来实现吗?或者我需要为此编写代码?任何指针?
您可以使用每个像素的过滤器,基督教Graus他Image Processing for Dummies with C# and GDI+ Part 1 - Per Pixel Filters(Download source)显示:
unsafe
{
byte * p = (byte *)(void *)Scan0;
int nOffset = stride - b.Width*3;
byte red, green, blue;
for(int y=0;y < b.Height;++y)
{
for(int x=0; x < b.Width; ++x)
{
blue = p[0];
green = p[1];
red = p[2];
p[0] = p[1] = p[2] = (byte)(.299 * red
+ .587 * green
+ .114 * blue);
p += 3;
}
p += nOffset;
}
}
更多的例子和其他过滤器查看链接页面。
当Button.IsEnabled为false时,只需将图像的不透明度设置为30%或50%。
编辑:我想你可以将Image.Source属性更改为禁用的图像文件。有几种方法可以做到这一点:有两个图像元素并将可见性属性绑定到按钮的IsEnabled属性;通过一个值转换器运行Image.Source属性;或者在IsEnabled属性更改时使用Blend触发器更改Source属性。
GDI +是否会在Silverlight中工作? – katit 2011-12-15 23:34:38
哎呀!我没看到那个标签!但是,在网上搜索后,我找不到任何明确表示你不能一起使用它们的地方。 – 2011-12-16 14:24:32