2012-02-07 11 views
13

Wszystkie programy, które rozwijam wykorzystują domyślny szablon Okna design: enter image description hereJak opracować unikatowe GUI w Visual Studio?

Poza zmianę barwy formie, w zasadzie każdy program piszę ma ten układ. Zastanawiam się, jak ludzie tworzą więcej niestandardowych GUI. Próbowałem sprawdzić go w Google, ale wyraźnie nie wiem, jak go sformułować w celu wyszukania. Kiedy mówię niestandardowych GUI Mam na myśli takie rzeczy jak: enter image description here

Zakładam, że wszystko sprowadza się do dostosowywania co ładuje, ale nie wiem, gdzie szukać, lub co do badań.

+1

Kontrole te w przykładzie wygląda skórek i kontroli DevExpress. Użyłem ich do projektu WinForm, wyglądają dobrze. Black skin @ http://www.devexpress.com/Products/NET/Controls/WinForms/Skins/i/skins/Black.png –

Odpowiedz

8

powinieneś sprawdzić WPF. uwalnia cię od postaci okien standardowych

+2

WPF jest praktycznie najlepszym sposobem na rozpoczęcie pracy z GUI. WinForm jest nadal obsługiwany, ale nie jest przedłużany, więc aby w pełni wykorzystać możliwości renderowania Windows Aero/Metro, musisz skorzystać z oferty WPF. – KeithS

+0

@KeithS yep yep! –

0

Zasadniczo, ktoś musi napisać kod, który implementuje dowolny GUI. Istnieje ogromny rynek bibliotek kontrolnych, które umożliwiają dostosowywanie skórowania i efektów. Lub, jak mówi @ Muad'Dib, użycie WPF pozwala łatwiej dostosować wygląd interfejsu GUI.

0
  1. W przypadku WinForms większość niestandardowych elementów sterujących można utworzyć, zastępując metodę OnPaint kontrolki i wykonując własne niestandardowe malowanie.
  2. Można także użyć WPF i tworzyć własne motywy i style.
  3. Można również pobrać kontrolę zewnętrzną, taką jak wspomniana przez johntotetwoo.
5

Twoja aplikacja 10 lat od teraz:

enter image description here

łatwo wdrożyć w WinForms btw. FormBorderStyle to Brak, właściwości Region i BackgroundImage oraz pewien rozsądny kod OnPaint().

+0

Całkowicie się zgadzam. Wiele aplikacji wykorzystujących stylizację/skórki faktycznie nie ma takiej potrzeby. Stosując stylizację, deweloperzy ponoszą ryzyko złej wydajności w porównaniu do oprogramowania do zdalnego sterowania, takiego jak RDP, ponieważ wymagają dużej ilości grafiki lub na starszych komputerach (skórki wymagają kodu, a wykonanie kodu wymaga czasu). Wymusza również wyższą krzywą uczenia się na użytkowniku końcowym, ponieważ twoja aplikacja wygląda inaczej niż większość z nich. Moim zdaniem oprogramowanie nie jest o modzie, ale o tym, jak wykonać pracę w najbardziej efektywny sposób, zarówno pod względem wydajności użytkownika, jak i wydajności. –

+0

Aha, i zapomniałem wspomnieć o problemach z dostępnością dla osób niepełnosprawnych/niedowidzących ... Cóż, to nie jest wina programistów ... Microsoft włożył wiele wysiłków w to w latach 90./2000, ale teraz pokazuje zły przykład z niestandardowymi i mało konfigurowalnymi interfejsami użytkownika, takimi jak pakiet Office 2010, imho. –

+2

To było zbyt brzydkie: D –

1

Jeśli naprawdę musi być natywną aplikację na pulpicie, a następnie użyć WPF .. inaczej, wraz z rozwojem HTML5 i urządzenia mobilnego, nie widzę żadnego powodu, nie budowania wieloplatformowych aplikacji internetowych.

0

Zdecydowanie zaleca się używanie WPF zamiast tego, jeśli możliwe jest korzystanie z funkcji Expression Blend, zdecydowanie sugeruję użycie funkcji Expression Blend do projektowania interfejsu użytkownika, scenorysów (animacji) i dostosowywania interfejsu użytkownika (interfejsów), a następnie odczucia tak jak chodzisz w niebie :)

Następnie proponuję użyć szablonów lub motywów dla WPF. Podobnie jak w przypadku motywu Zune, a jeśli interesują Cię motywy pakietu Microsoft Office, dobrą wiadomością jest przepełnienie takich motywów, wystarczy google!

, ale sugeruje się zaprojektowanie własnych elementów sterujących, jeśli możliwe jest użycie narzędzia Blend, z wyjątkiem sytuacji, w których nie można tego zrobić w rzeczywistości.

0

Spójrz na Metro Framework. Jest darmowy, open source i sławny. Niedawno go użyłem i okazało się, że jest bardzo atrakcyjne. Możesz również znaleźć zrzuty ekranu z przykładami GUI i kodu na powyższym odnośniku.

enter image description here