Also wir nennen WPF im Betrieb liebevoll WTF, für "What the f***?"
Ich hab auch mal gelesen (bin bei WPF noch nicht so weit), dass die Begeisterung für WPF eher einer Parabel ähnelt. Zu erst Frustration, weil es doch schwer ist, sich an WPF zu gewöhnen, dann immer mehr Begeisterung, da man fest stellt, was für viele tolle Dinge man mit WPF machen kann und dann geht's wieder abwärts, da es anscheinend an vielen STellen nicht ganz so gut umgesetzt ist, auch wenn die Idee toll ist.
Ich meine auch mal gelesen zu haben, dass die Oberfläche für Windows Vista in WPF geschrieben wurde.
Ob das stimmt, weiß ich nicht, aber ich bin geneigt, es zu glauben, wenn ich XP im direkten Vergleich zu Vista setze.
Das Betriebssystem mag ein Reinfall gewesen sein, aber optisch ist der Sprung dann doch groß und mir gefällt's.
Auch denke ich, dass Software, wie Visual Studio alle mit WPF geschrieben wurden, das müsste es theoretisch ja auch für C++/CLI geben.
Wenn du also optisch ansprechende, tolle und aufwendige Oberflächen bauen willst, wirst du an WPF nicht vorbei kommen, da es dann doch enorm viele Möglichkeiten gibt.
In Windows Forms kannst du zwar Klick-Events über einem Bild ab fangen, eine tolle Klick-Animation - und wenn es nur ein simple Button ist - hast du dann aber nicht. Du könntest dem Button ein Hintergrundbild geben, aber auch das ist nicht so furchtbar toll.
Die einzige Möglichkeit, die dir bleibt, ist ein eigenes Control, was das dann auch so dar stellt, wie du es willst.
Ein Problem hast du aber auch noch: Windows Forms ist deutlich langsamer als WPF. Es arbeitet noch mit GDI+, vielleicht hast du eventuell bei der Arbeit mit der Klasse Bitmap schon mal so einen tollen nichtssagenden Fehler gehabt, wo dann irgendwo GDI+ drin stand. Das merkst du besonders, wenn sich das Fenster in schneller Folge ändert.
WPF setzt direkt auf DirectX auf und kann die Hardware-Leistung daher viel effektiver aus nutzen und das merkt man.
Was deine aktuelle Situation angeht:
Ich denke, es ist unklug, jetzt schon mit WPF anzufangen, wo du gerade mal mit C# begonnen hast.
Windows Forms bringt weit schneller und einfacher relativ anschauliche Oberflächen, auch wenn es nicht so flexibel und schnell ist. Außerdem ist es immer gut, wenn du mit WinForms umgehen kannst, denn kleine Anwendungen lassen sich doch viel schöner mal eben mit WinForms zusammen basteln.
WPF bringt dagegen eine komplett neue Sprache mit sich (XAML). Du kannst zwar auch ohne XAML eine Oberfläche in WPF programmieren, allerdings bedeutet das dann Unmengen Code, durch den keiner durch blickt und einen Designer findest du im Visual Studio dafür auch nicht, der erstellt meines Wissens nach nur in XAML.
Meine Meinung daher:
Lerne gut mit C# umzugehen und nutze WindowsForms, das reicht für den Anfang vollkommen aus.
Danach kannst du immer noch WPF lernen und hast dann stabile Kenntnisse in C#.
PS:
Was ich über WPF geschrieben habe, ist zum größten Teil aus Erzählungen von der Arbeit, ein paar Quellen im Internet und ein bisschen von meinem WPF-Buch zusammen gesetzt.
Wenn sich da also grobe Fehler eingeschlichen haben, dann tut es mir Leid und ich bitte, die erfahrenen Kollegen hier, diese zu korrigieren. ^^