With a little bit of Win32 Interop you can get an HWND of your window and use CreateRgn and define a clipping region for your window, this would render any portion of the window "see-through" as you need. It will also modify hit-testing, thus, the window is not only "see through" but is also "click through".
Here are some bits from one of my pet projects, this eliminates the client area of the window. Some of the code here may be specific to WPF, but ultiamtely the Win32 APIs shown here have been present since the early 90s.
[DllImport("gdi32.dll")]
internal static extern IntPtr CreateRectRgnIndirect([In] ref Mubox.Win32.Windows.RECT lprc);
[DllImport("gdi32.dll")]
internal static extern IntPtr CreateRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
[DllImport("user32.dll")]
internal static extern int SetWindowRgn(IntPtr hWnd, IntPtr hRgn, bool bRedraw);
[DllImport("gdi32.dll")]
internal static extern int CombineRgn(IntPtr hrgnDest, IntPtr hrgnSrc1, IntPtr hrgnSrc2, CombineRgnStyles fnCombineMode);
public enum CombineRgnStyles : int
{
RGN_AND = 1,
RGN_OR = 2,
RGN_XOR = 3,
RGN_DIFF = 4,
RGN_COPY = 5,
RGN_MIN = RGN_AND,
RGN_MAX = RGN_COPY
}
#endregion
IntPtr windowRegion = Control.Windows.CreateRectRgn(0, 0, parkingWindowRect.Width, parkingWindowRect.Height);
Mubox.Win32.Windows.RECT clipRect = new Mubox.Win32.Windows.RECT();
Mubox.Win32.Windows.GetClientRect(this.Handle, out clipRect);
clipRect.Left = (parkingWindowRect.Width - clipRect.Width) / 2;
clipRect.Right += clipRect.Left;
clipRect.Top = (parkingWindowRect.Height - clipRect.Height) - clipRect.Left;
clipRect.Bottom = parkingWindowRect.Height - clipRect.Left;
IntPtr clipRegion = Control.Windows.CreateRectRgnIndirect(ref clipRect);
Control.Windows.CombineRgn(windowRegion, windowRegion, clipRegion, Windows.CombineRgnStyles.RGN_XOR);
Control.Windows.DeleteObject(clipRegion);
Control.Windows.SetWindowRgn(this.Handle, windowRegion, true);