2012-12-10 3 views
6

Я всегда думал, что границы формы, которые используют такие программы, как iTunes или Visual Studio 2012, выполнены без стиля рамки и кнопок, поскольку кнопка закрытия рисуется как изображения.Собственный стиль формы границы

Visual Studio 2012 Musicjet

Однако, как только мой Visual Studio не отвечает, и граница изменяется на основной границе Windows.

Windows

Как я могу получить собственную форму границы? Возможно ли это на C#?

+1

: попробуйте tis две ссылки: http: //www.codeproject.com/Articles/18351/A-Form-with-Customized-Caption-Bar-and-Flexible-Bo и http://customerborderform.codeplex.com / – KF2

ответ

3

Вы видите окно «призрак», окно, созданное оконным менеджером Windows для замены мертвого окна. Вы видите «Не реагировать» в строке заголовка. Конечно, это окно не будет иметь одинакового стиля, но Windows не знает, как это сделать должным образом.

Вы можете использовать служебную программу Spy ++ для просмотра свойств окна другого приложения. VS2012 действительно использует обычный стиль окна с заголовком. Как они настроены, это хорошо сохранившийся секрет, я подозреваю, что они перехватывают WM_NCPAINT, довольно сложное сообщение, чтобы реализовать себя. Использование окна без полей определенно проще.

0

В дополнении к сообщению @Hans':

Использование WPF вы можете установить Оформление_окно к ни как это:

<Window WindowStyle="None"> 

Затем вы можете реализовать свои собственные кнопки.

Смежные вопросы