【问题标题】:Creating a semi-transparent blurred background WPF创建半透明模糊背景 WPF
【发布时间】:2010-05-07 05:04:42
【问题描述】:

我有一个边框,我希望这个边框的背景是部分透明的(不透明度 0.8),但我不希望它后面的图像被很好地定义。我追求的效果类似于Windows Vista的窗口边框效果,你可以看到它后面有东西,但你不能知道它是什么。

一些澄清:
我正在使用 Windows XP,所以我不能使用 Vista Glass
我需要这个解决方案可以在任何 Windows 平台上移植

任何帮助将不胜感激:)

【问题讨论】:

标签: wpf xaml blur


【解决方案1】:

Extend Glass Frame Into a WPF Application

WPF Window with aero glass background. (C# .NET)

DWM Blur Behind Overview

希望这些链接之一有所帮助。我使用了第一个链接,我必须添加这个类才能使其工作:

#region WINAPI Crap, none should handle this in 21st century
    private class NonClientRegionAPI
    {
        [StructLayout(LayoutKind.Sequential)]
        public struct MARGINS
        {
            public int cxLeftWidth;      // width of left border that retains its size
            public int cxRightWidth;     // width of right border that retains its size
            public int cyTopHeight;      // height of top border that retains its size
            public int cyBottomHeight;   // height of bottom border that retains its size
        };


        [DllImport("DwmApi.dll")]
        public static extern int DwmExtendFrameIntoClientArea(
            IntPtr hwnd,
            ref MARGINS pMarInset);

    }
    #endregion

【讨论】:

    【解决方案2】:

    这是我在网上能找到的最好的:

    http://blogs.msdn.com/unnir/archive/2006/03/01/541154.aspx

    考虑到以上内容是由 Microsoft 人员编写的,您很难找到更好的方法。

    它在窗户上做了一个简单的透明度,所以不像 Aero 玻璃。 Aero 效果是硬件加速的,并且肯定会以某种方式使用 Direct3D。

    这个 SO answer 详细讨论了它:

    Is it possible to achieve the "Aero Glass" look on XP?

    【讨论】:

    • 感谢朋友的帮助。仍在努力模仿 Aero 的外观,并没有完全得到我想要的东西。如果我这样做会在这里发布
    • 我目前正在寻求尽可能准确地再现效果。不幸的是,这篇博文的出站链接似乎完全失效了(不在互联网档案中,谷歌搜索文件名也没有效果)。这个特定的大约 2006 年的实施有什么好处吗?也许有人在那里埋了文件的副本。
    【解决方案3】:

    在 Silverlight 中,有一个模糊效果 (http://www.silverlightshow.net/tips/Using-Blur-and-DropShadow-effects-in-Silverlight-3.aspx) 也应该可用于 WPF (http://searchwindevelopment.techtarget.com/tip/0,289483,sid8_gci1377157,00.html),您可以将其应用于控件。也许将此与不透明度结合起来可以帮助您实现预期的目标?

    【讨论】:

    • 感谢您的回答,模糊只会模糊控件显示区域内的视觉效果。例如,如果我有一个红色/白色渐变并且我应用了模糊,则红色/白色将在应用模糊的区域中模糊为更均匀的颜色(粉红色),但如果它是透明的,则项目并且透明控件后面的文本仍将清晰聚焦
    猜你喜欢
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2017-12-28
    • 2019-01-05
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多