为我的窗户改变Aero玻璃的颜色?

时间:2009-09-23 08:19:08

标签: wpf aero aero-glass

我在WPF应用程序中使用DwmExtendFrameIntoClientArea来获得玻璃效果。这工作正常。我想做的是改变用于玻璃的颜色 - 我正在写一个倒数计时器,我希望窗口大部分时间都是普通的玻璃颜色,然后变成红色(但是当时间用完时,仍然用玻璃。

我找到了this question,其中讨论了如何应用渐变玻璃,并且在选择不同颜色时效果很好。不幸的是,边框没有适当的颜色。

当我使用ResizeMode="NoResize"关闭边框时,我最终会出现方角。我想保留圆角。

我看着创建一个不规则形状的窗口,使用AllowTransparency="True"并且工作正常,但看起来不像Aero玻璃窗。它看起来有点扁平。

所以:我的问题:如何在WPF中创建一个看起来像Aero玻璃透明度但使用不同颜色的窗口?

2 个答案:

答案 0 :(得分:2)

我认为实现这一目标的唯一可行方法是使用半透明填充边框并将其绘制在整个窗口或您获得玻璃的部分上。它是一种解决方法,但我想这是一个可能的解决方案,因为玻璃的颜色由系统用户定义,这个设置会覆盖你的。

答案 1 :(得分:1)

我自己也在问同样的问题。

我还没有找到一个好的解决方案,尽管到目前为止我遇到的最好的解决方案是:

HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = Colors.FromArgb(100,255,0,0);

不幸的是,这会对最小化,调整大小和关闭按钮着色,我宁愿避免使用。