diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index 648a3c6a340..3b2b99fb0c3 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -1467,6 +1467,16 @@ public static extern IntPtr CreateFileMapping(IntPtr hFile, [DllImport("dwmapi.dll")] public static extern void DwmEnableBlurBehindWindow(IntPtr hwnd, ref DWM_BLURBEHIND blurBehind); + + [Flags] + public enum LayeredWindowFlags + { + LWA_ALPHA = 0x00000002, + LWA_COLORKEY = 0x00000001, + } + + [DllImport("user32.dll")] + public static extern bool SetLayeredWindowAttributes(IntPtr hwnd, uint crKey, byte bAlpha, LayeredWindowFlags dwFlags); [Flags] public enum DWM_BB diff --git a/src/Windows/Avalonia.Win32/Win32NativeControlHost.cs b/src/Windows/Avalonia.Win32/Win32NativeControlHost.cs index 8f62163d81c..2a1628ea7d7 100644 --- a/src/Windows/Avalonia.Win32/Win32NativeControlHost.cs +++ b/src/Windows/Avalonia.Win32/Win32NativeControlHost.cs @@ -9,10 +9,12 @@ namespace Avalonia.Win32 { class Win32NativeControlHost : INativeControlHostImpl { + private readonly bool _useLayeredWindow; public WindowImpl Window { get; } - public Win32NativeControlHost(WindowImpl window) + public Win32NativeControlHost(WindowImpl window, bool useLayeredWindow) { + _useLayeredWindow = useLayeredWindow; Window = window; } @@ -25,12 +27,12 @@ void AssertCompatible(IPlatformHandle handle) public INativeControlHostDestroyableControlHandle CreateDefaultChild(IPlatformHandle parent) { AssertCompatible(parent); - return new DumbWindow(parent.Handle); + return new DumbWindow(false, parent.Handle); } public INativeControlHostControlTopLevelAttachment CreateNewAttachment(Func create) { - var holder = new DumbWindow(Window.Handle.Handle); + var holder = new DumbWindow(_useLayeredWindow, Window.Handle.Handle); Win32NativeControlAttachment attachment = null; try { @@ -52,7 +54,7 @@ public INativeControlHostControlTopLevelAttachment CreateNewAttachment(Func