beispiel - wpf c# tutorial



Was ist WPF und wie ist es mit WinForms zu vergleichen? (5)

Ich habe mir WPF angesehen, aber ich habe nie wirklich daran gearbeitet (außer 15 Minuten, die diese Frage aufforderten). Ich habe mir diesen post aber es geht wirklich um das "Flash" einer WPF. Was ist also der Unterschied zwischen einer Windows Forms-Anwendung und einer WPF-Anwendung?

https://ffff65535.com


  1. WPF ist im Wesentlichen eine neue API zum Erstellen von grafischen Benutzeroberflächen für die Windows-Plattform.
  2. WPF ist mehr als nur ein Präsentationssystem der nächsten Generation für die Erstellung von Windows-Client-Anwendungen mit visuell beeindruckenden Benutzeroberflächen.
  3. WPF basiert auf DirectX (Direct3D), anstatt sich auf das ältere GDI / GDI + -Untersystem zu verlassen.
  4. WPF ist eine vektorgrafikbasierte UI-Präsentationsschicht, die auf Vektoren basiert, sodass die Präsentationsschicht UI-Elemente störungsfrei auf jede beliebige Größe skalieren kann.
  5. WPF ist "skinfähig" und "themenfähig". Das bedeutet, dass WPF das Aussehen und Verhalten jedes UI-Steuerelements ändern kann.

Aus Sicht der Implementierung besteht einer der Hauptunterschiede darin, dass WPF eine strikt erzwungene MV-VM-Architektur des Modellansicht / Ansichtsmodells verwendet, wobei die Ansicht in einer benutzerdefinierten Markupsprache (XAML) definiert ist, wobei das Ansichtsmodel eine Klasse mit zugänglichen Eigenschaften ist und das Modell ist tatsächlich die Datenzugriffsschicht. WinForms hat im Vergleich keine solche explizite Trennung - obwohl die verschiedenen Aspekte per Konvention in verschiedenen C # -Dateien gruppiert werden können, ist alles noch Code. In der Praxis macht dies die WPF-Entwicklung mehr wie die Web-DOM-Entwicklung, wobei das WPF-Framework im Hintergrund läuft und vermittelt.


Eine gute Möglichkeit, dies zu betrachten, könnte mit der Frage beginnen, was Winforms genau ist.

Sowohl Winforms als auch WPF sind Frameworks, die die Codierung der UI-Schicht einer Anwendung erleichtern. Die wirklich alten Leute hier sprechen vielleicht darüber, wie das Schreiben der Windows-Version von "Hallo, Welt" 4 Seiten oder so Code benötigen könnte. Außerdem waren die Felsen damals viel weicher und wir mussten während des Codierens mit riesigen Echsen kämpfen. Die Winforms-Bibliothek und der Designer nehmen viele der üblichen Aufgaben und erleichtern das Schreiben.

WPF tut das Gleiche, aber mit dem Bewusstsein, dass diese allgemeinen Aufgaben jetzt auch visuell interessantere Dinge enthalten können, zusätzlich zu vielen anderen Dingen, die Winforms nicht unbedingt als Teil der Benutzeroberflächenschicht betrachtet. Die Art und Weise, wie WPF Befehle, Auslöser und Datenbindungen unterstützt, ist zwar ein großer Teil des Frameworks, aber der Hauptgrund dafür ist der gleiche Grund, warum Winforms es überhaupt gab.

WPFs Verbesserung ist hier, dass Sie nicht die Möglichkeit haben, entweder ein komplett benutzerdefiniertes Steuerelement von Grund auf neu zu schreiben oder Sie zwingen, einen einzelnen Satz von Steuerelementen mit eingeschränkten Anpassungsfähigkeiten zu verwenden, Sie können nun die Funktion eines Steuerelements von seinem Erscheinungsbild trennen. Die Möglichkeit zu beschreiben, wie unsere Steuerelemente in XAML aussehen und sich von der Funktionsweise der Steuerelemente im Code unterscheiden, ist dem HTML / Code-Modell, mit dem Web-Programmierer arbeiten, sehr ähnlich.

Eine gute WPF-Anwendung folgt demselben Modell wie eine gute Winforms-Anwendung. So viel Material wie möglich von der UI-Schicht fernhalten. Die Kernlogik der Anwendung und der Datenschicht sollte die gleiche sein, aber es gibt jetzt einfachere Wege, um die visuellen Darstellungen eindrucksvoller zu machen, was wahrscheinlich der Grund dafür ist, dass die meisten Informationen, die Sie auf der Anwendung sehen, etwas auffälligeres Bildmaterial enthalten. Wenn Sie WPF lernen möchten, können Sie damit anfangen, es fast genauso wie Winforms zu verwenden, und dann die anderen Funktionen umgestalten, wenn Sie sie verstehen. Für ein hervorragendes Beispiel dafür empfehle ich Scott Hanselmans Blog-Serie über die Entwicklung von BabySmash, die hier beginnt . Dies ist eine großartige Lösung für den Prozess, sowohl im Code als auch im Denken.


Um Ihre Frage zu beantworten, ist eine WPF-Anwendung eine Windows-Anwendung. WPF ist das neue Framework von Microsoft (eigentlich ein Subsystem des .NET Framework 3.0) zum Schreiben von Rich Windows-Anwendungen. Es ist als eventueller Ersatz für WinForms gedacht (obwohl zugegebenermaßen die Adoptionsrate viel langsamer ist, als von MS erwartet).


WPF steht für Windows Play Foundation Foundation. Während die WinForms-Technologie von GDI / GDI + abhängt, ist WPF direkt auf DirectX aufgebaut. Das bedeutet, dass Sie mit WinForms viel mehr tun können als mit der .NET Framework-Klassenbibliothek. Sie können umfangreiche Benutzeroberflächen, 2D / 3D-Spiele, Präsentationen und vieles mehr erstellen. WPF ähnelt einem Flash (swf) -Film ohne das Element "Movie". WPF basiert auf .NET und kann verwendet werden, um webbasierte Rich Client-Anwendungen zu erstellen.





windows