Расширение размера неклиентской области с помощью C#
Мне нужно расширить размер верхнего края клиентской области, чтобы ввести компоненты, не относящиеся к графическому интерфейсу, в это место. Я использую приведенный ниже код для этого, однако, повернув расширенный код области пустым, вы не получите прозрачность Windows 7 Professional, которая является ОС, которую я использую.
Я новичок в программировании и C # Windows API. Благодарю за внимание.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; using System.Windows.Forms; namespace InstrumentalCsharp { public partial class WExplorerPadrao : Form { [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", PreserveSig = false)] public static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins); [DllImport("dwmapi.dll", PreserveSig = false)] public static extern bool DwmIsCompositionEnabled(); public WExplorerPadrao() { InitializeComponent(); } protected void WExplorerPadrao_Load(object sender, System.EventArgs e) { WExplorerPadrao.MARGINS margins = new WExplorerPadrao.MARGINS(); margins.cxLeftWidth = 0; margins.cxRightWidth = 0; margins.cyTopHeight = 20; margins.cyBottomHeight = 0; IntPtr hwnd = this.Handle; WExplorerPadrao.DwmExtendFrameIntoClientArea(hwnd, ref margins); } } }
Что я уже пробовал:
Я попытался расширить верхнюю часть неклиентской области на других языках, однако результат оказался таким же, как я описал выше.