Как я могу получить больше площади стекол win7 за счет уменьшения основного контейнера управления? (С #)

По умолчанию форма имеет область заголовка с ограниченным размером, к которой применяется эффект аэростекла. Я хотел бы увеличить эту область не только в заголовке, но и в нижней части и по бокам формы.схема

1 ответ

Решение

Использование DwmExtendFrameIntoClientArea:

[StructLayout(LayoutKind.Sequential)]
struct MARGINS {
    int Left;
    int Right;
    int Top;
    int Bottom;
}

[DllImport("user32.dll")]
public static extern IntPtr DwmExtendFrameIntoClientArea(IntPtr hWnd, ref MARGINS pMarInset);

Вызов DwmExtendFrameIntoClientArea с вашей формы Handle и MARGINS состав. Просто установите Left, Right, Top а также Bottom на сумму, которую вы хотите, чтобы соответствующие границы были расширены.

Да, и установить BackColor вашей формы для Black, (Спасибо, @HansPassant!)

Извините, если я получил extern синтаксис неправильный. Я никогда не делал этого в C#...

Другие вопросы по тегам