Unterschied in der Anzeige von WPF- und Windows Forms-Anwendungen

7

Eigentlich habe ich angefangen WPF zu lernen. Ich habe einige Monate Erfahrung in der Entwicklung von Windows Forms-Anwendungen. Obwohl ich die Bedeutung einer WPF-Anwendung verstehe, bin ich immer noch nicht in der Lage, den Unterschied zwischen zwei auf der Grundlage ihrer Ausgabe zu unterscheiden.

In Bezug auf diese Link: Device Independent Pixel (DPI) habe ich gelernt, dass das Betriebssystem, wenn es eine WPF-Anwendung rendert, seine Größe selbst entsprechend seiner Auflösung verwaltet.

Um diesen Unterschied zu überprüfen, habe ich zwei Demo-Anwendungen in beiden Frameworks erstellt und die Auflösung geändert. Aber ich habe keinen befriedigenden Unterschied gefunden. Was könnte erklären, es ist eine WPF-Anwendung und das ist eine Windows Forms-Anwendung.

Es erzeugt keine Bildlaufleiste beim Maximieren und macht die Schaltfläche nicht groß oder klein beim Ändern der Auflösung.

Ich habe irgendwo gelesen, dass Visual Studio 2010 in WPF neu geschrieben wurde. Aber in meinen Experimenten sah ich, dass (bei Änderung der Auflösung des Desktops) Text und Grafiken unlesbar / unscharf werden. Bei der Größenanpassung seines Fensters wurde alles außer der Menüleiste ausgeblendet. Und der Inhalt der Menüleiste änderte seine Positionierung, z. Ganz rechts rutschte ein Menü herunter. Warum?

Bitte machen Sie mich richtig & amp; erkläre auch ein wenig mehr (dieses Display-Problem).

    
user2804762 22.09.2013, 18:08
quelle

2 Antworten

14

Um diese Frage richtig zu beantworten, muss ich vielleicht ein ganzes Kapitel hier schreiben, aber ich halte es kurz. Von dem, was ich bisher gelernt habe, gibt es drei Hauptunterschiede zwischen einer WPF-Anwendung und einer Windows Forms-Anwendung.

  1. Layout: WPF bietet uns eine größere Flexibilität bei der Gestaltung unserer visuellen Elemente. Es verfügt über eine intelligente Hinter-der-Szene-Mechanik, die automatisch und dynamisch den Platz für jedes Element findet, ohne dass das Layout von Hand aktualisiert werden muss. Beispielsweise:
    • Wie Benutzer in einer TextBox eingeben, wird ihre Breite möglicherweise größer und verschiebt andere Elemente weg oder es werden einige Elemente in eine neue Zeile verschoben (wie die Menüleiste, die Sie beobachtet haben)
    • Wenn sich die Größe eines Steuerelements ändert, wirkt sich dies auf den verfügbaren Platz für andere Elemente aus, sodass sich Größe und Position entsprechend ändern können.
    • Wenn das Fenster geändert oder die Auflösung geändert wird, aktualisiert es sofort das Layout und ändert die Größe der Elemente, um den Raum auszufüllen oder anzupassen. (Erwarten Sie nicht, dass die Größe einer Schaltfläche verdoppelt wird, wenn Sie die Auflösung halbieren. Das funktioniert nicht so. Im Grunde misst sie jedes Element zuerst und dann ordnet es sie an)

Hier erfahren Sie mehr über Layouts. >

  1. Rendern: Probieren Sie ein Raster mit 30x30 TextBoxen in einer Windows Forms-Anwendung und einer WPF-Anwendung aus. Egal wie unordentlich Sie das WPF schreiben, es ist immer noch viel schneller als Windows Forms und es wird nicht für eine Sekunde blinken, wenn Sie es richtig schreiben. Stellen Sie sich eine Handvoll Animationen, Effekte, Trigger und Hierarchie von Stilen vor, die immer noch viel schneller sind als Windows Forms.

    • Auch verwendet es double type für Sizings und daher können Sie die Kanten manchmal verschwommen sehen, aber es kann vermieden werden (SnapToDevicePixels). Anmerkung: Um zu verhindern, dass in einer Windows Forms-Anwendung die Geschwindigkeit abnimmt und blinkt, sollten Sie DoubleBuffer des Formulars auf "true" setzen.
  2. Das letzte und wichtigste: Präsentation im Fokus: Das mag etwas seltsam erscheinen, aber wenn Sie WPF wählen, müssen Sie aufhören, in Windows Forms zu denken (zahlreiche Ereignisse) und steuert mit Namen und viel Code dahinter) und fangen an, in WPF zu denken (Binding, Commands, Resources, Styles, Templates, Converters, DependencyProperties und deren Callbacks).

    • Die wahre Stärke von WPF liegt in der Trennung von "View" und "Logic". Sobald Sie den Dreh raus haben, gibt es keine Grenzen mehr, wie Sie den "View" präsentieren können.
    • Noch wichtiger ist, dass das MVVM-Muster die visuell kompliziertesten Anwendungen recht einfach macht und leicht zu entwickeln.

Wenn Sie vorhaben, zu WPF zu wechseln, haben Sie die richtige Entscheidung getroffen. Halten Sie sich immer an den Plan! Vermeiden Sie Code hinter (Kodierung in .xaml.cs Dateien), XAML Namen (außer nur in XAML) und UI-Ereignisse so viel wie möglich. Nutze stattdessen WPF-Fähigkeiten.

    
Bijan 08.10.2013 21:17
quelle
5

Windows Forms (WinForms) und Windows Presentation Foundation (WPF) sind zwei verschiedene Möglichkeiten zum Erstellen der Benutzeroberfläche für Ihre Anwendung. Windows Forms ist die ältere Technologie und ihre Steuerelemente befinden sich in System.Windows.Forms namespace . WPF ist eine neuere Technologie und ihre Steuerelemente befinden sich im Namespace System.Windows.Controls .

WPF

Pros:

  • Leistungsfähige Styling- und Skinning-Struktur
  • Einfach, Ihr eigenes Aussehen und Gefühl zu erstellen
  • Unterstützt Windows Forms
  • Die Zukunftstechnologie für die Entwicklung von Windows Vista-Anwendungen
  • Die Möglichkeit, vorhandenen Code zu verwenden
  • Hochentwickelte Datenbindung möglich

Nachteile:

  • Deklarativer vs. prozeduraler Code
  • Erfordert .NET Framework 3.0
  • Im Vergleich zu Windows Forms, die sich noch in der Entwicklungsphase befinden
  • Erfordert eine Dx9-kompatible Grafikkarte für fortgeschrittene Grafiken

Windows Forms

Pros:

  • Umfangreiche Dokumentation zu finden im Internet
  • Viele Beispiele
  • Unterstützt WPF

Nachteile:

  • Wie lange wird das unterstützt? (Ich habe irgendwo gelesen, dass Microsoft gerade WPF entwickelt, nur Wartung für Windows Forms).
  • Gestalten Sie Ihr eigenes Aussehen und Gefühl in einer Anwendung ist eine Menge Arbeit.
Madhavan 04.02.2014 14:43
quelle

Tags und Links