为我的PNG图像按钮创建禁用状态

本文关键字:状态 创建 按钮 我的 PNG 图像 | 更新日期: 2023-09-27 18:18:13

我正在做工具栏控件,需要做一些让按钮变灰的效果。

假设我有PNG图标我想让它们变色。这可以用XAML实现吗?或者我需要为此编写代码吗?指针吗?

为我的PNG图像按钮创建禁用状态

你可以使用逐像素过滤器,正如Christian Graus在他的c#和GDI+图像处理第1部分-逐像素过滤器(下载来源)中所演示的那样:

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;
   }
}

查看链接页面获取更多示例和其他过滤器

设置图像的不透明度为30%或50%。IsEnabled为false

edit:我想你可以改变图像。源属性设置为已禁用的映像文件。有几种方法可以做到这一点:有两个图像元素,并将visibility属性绑定到按钮的IsEnabled属性;运行镜像。通过值转换器获取源属性;或者当IsEnabled属性改变时,使用Blend触发器来改变Source属性。