示例#1
0
 private static extern void DwmEnableBlurBehindWindow(IntPtr hWnd, ref BLURBEHIND pBlurBehind);
示例#2
0
      /// <summary>
      /// Toggle the Blurred glass on the specified window region of the client area of a Window.
      /// </summary>
      /// <param name="window">The window.</param>
      /// <param name="enable">if set to <c>true</c> enable, otherwise disable.</param>
      /// <param name="region">A pointer to the region to to enable blur on, or IntPtr.Zero for the whole window</param>
      /// <param name="transition">If set to <c>true</c> transition the blur on Maximized.</param>
      public static void EnableBlurBehind(this Window window, bool enable, IntPtr region, bool transition)
      {
         var blurBehind = new BLURBEHIND
                             {
                                Flags = (BlurBehindOptions.Enable | BlurBehindOptions.TransitionOnMaximized),
                                Enable = enable,
                                TransitionOnMaximized = transition
                             };

         if (enable && IntPtr.Zero != region)
         {
            blurBehind.Flags |= BlurBehindOptions.BlurRegion;
            blurBehind.RegionBlur = region;
         }

         DwmEnableBlurBehindWindow(new WindowInteropHelper(window).Handle, ref blurBehind);
      }