将未聚焦窗口设置为灰度 - WPF C#

时间:2015-08-11 17:19:15

标签: c# wpf grayscale

我有一个色彩鲜艳的应用程序,当它没有聚焦时,我希望以灰度显示。

这是应用程序在关注时的样子:

- 哈!添加图片需要10点声望。

无论如何,由于mahapps(地铁),顶部栏已经变为灰色,但是当窗口未聚焦时,内容仍然是彩色的。有没有办法在内容上添加某种层? 在搜索这个主题时,我只是被关于如何将图像转换为灰度的问题所困扰。

我的应用中有TabControlsLabelsButtonsWebBrowsersTextBlocks以及所有类型的内容,所有内容都包含在一个grid,如果有帮助的话。

对此非常感激。

1 个答案:

答案 0 :(得分:1)

可以使用PixelShaders创建WPF效果。解释这一切将是一个很长的答案。

有关如何创建和使用灰度像素着色器效果的完整指南,请参阅此链接: Grayscale Effect - A Pixel Shader Effect in WPF

在需要时将效果应用于每个窗口。