2012-12-10 11 views
6

Zawsze myślałem, że granice formularzy, które używają programów takich jak iTunes lub Visual Studio 2012 są wykonane bez stylu obramowania i przyciski jako przycisku zamykania są rysowane jako obrazy.własny styl forma granica

Visual Studio 2012 Musicjet

Jednak gdy mój Visual Studio nie reaguje a granica zmienił podstawowej granicy Windows.

Windows

Jak mogę uzyskać własną formę granicę? Czy to możliwe w C#?

+1

: wypróbuj dwa ogniwa: http: //www.codeproject.com/Articles/18351/A-Form-with-Customized-Caption-Bar-and-Flexible-Bo i http://customerborderform.codeplex.com / – KF2

Odpowiedz

3

Widzisz „okno duch”, pojawi się okno, że menedżer okien Windows tworzy zastąpić martwe okno. Na pasku tytułu pojawia się komunikat "Nie odpowiada". To okno nie będzie musiało oczywiście wyglądać tak samo, ale Windows nie wie, jak to zrobić właściwie.

Możesz użyć narzędzia Spy ++ do obejrzenia właściwości okna innej aplikacji. VS2012 w rzeczywistości używa zwykłego stylu okna z paskiem tytułu. To, jak je dostosowali, jest dobrze utrzymanym sekretem, podejrzewam, że przechwytują WM_NCPAINT, dość trudną wiadomość do wdrożenia. Korzystanie z okna bez ramki jest zdecydowanie łatwiejsze.

0

nawiązaniu do postu @Hans':

Korzystanie WPF można ustawić windowstyle none tak:

<Window WindowStyle="None"> 

Następnie można zaimplementować własne przyciski.