Ich bin schon lange mit der Entwicklung von Windows Forms beschäftigt (angefangen mit VB6 und bis zu C # .NET 4.5), und ich bin ziemlich an die Grenzen der Möglichkeiten von Windows Forms gestoßen, beide mit reinem .NET und Spezialeffekte mit Native Code.
Ich habe versucht, WPF und XAML zu lernen, aber ich stecke direkt beim neuen Designer von WPF fest. Die Verwendung im Vergleich zum Windows Forms-Designer scheint wirklich sehr schwierig zu sein.
Ich möchte wissen, ob es Alternativen zum WPF-Designer von .NET gibt, die besser für Windows Forms-Entwickler geeignet sind.
Antworten:
Ich blogge gerne über Anfängerartikel für WPF, und es gibt insbesondere einige, die Ihnen helfen können:
Zusammenfassend ist der größte Unterschied zwischen Winforms und WPF, dass in WPF Ihre Datenschicht (die
DataContext
) Ihre Anwendung ist, während in Winforms Ihre UI-Schicht Ihre Anwendung ist.Anders ausgedrückt: Mit WPF besteht Ihre Anwendung aus den von Ihnen erstellten Objekten. Mithilfe von Vorlagen und anderen UI-Objekten können Sie WPF mitteilen, wie Ihre Anwendungskomponenten gezeichnet werden sollen.
Dies ist das Gegenteil von WinForms, bei dem Sie Ihre Anwendung aus UI-Objekten erstellen und diese dann mit den erforderlichen Daten versorgen.
Aus diesem Grund wird der Designer nicht so häufig verwendet, da Ihre Anwendungskomponenten in Code entworfen sind und der Designer nur eine benutzerfreundliche Oberfläche zeichnen muss, die Ihre Datenklassen widerspiegelt (normalerweise
Models
undViewModels
).Und ich persönlich bevorzuge es, alle meine XAML-Dateien von Hand zu tippen, da sie schneller sind und nicht so viel Chaos verursachen wie der Drag / Drop-WPF-Designer, obwohl ich den Designer gelegentlich verwende, um eine Vorschau meiner Benutzeroberfläche anzuzeigen mögen.
Um Ihre Frage zu beantworten, ob es andere WPF-Designer gibt, die für WinForms-Entwickler geeignet sind, würde ich vorschlagen, statt nach einem anderen Designer zu suchen, stattdessen zu lernen, wie man WPF so verwendet, wie es verwendet werden soll. Wenn Sie WPF wie WinForms verwenden, verpassen Sie vieles, was es so großartig macht :)
quelle
Nun, obwohl einige Leute nicht einverstanden sind, würde ich auch empfehlen, den VS-Designer nicht zu verwenden. Zumindest nicht, um eine Schnittstelle zu erstellen. Wenn Sie einen ersten Eindruck von Ihrer Implementierung erhalten möchten, ohne die Anwendung zu starten, ist dies ein guter Viewer, zumindest solange keine anspruchsvollen Dinge wie
Styles
undTemplates
verwendet werden. IMHO sollte das Drag & Drop-Ergebnis jedoch nur als Prototyp verwendet und daher verworfen werden, nachdem es nicht mehr benötigt wird.Hier sind einige Gründe, die für mich wichtig sind, es nicht zu verwenden.
Der VS-Designer arbeitet mit festen Rändern und Ausrichtungen (was normalerweise nicht erforderlich ist, wenn Sie die Layout-Steuerelemente verwenden). Dies bedeutet, dass Sie viele Steuerelemente berühren müssen, wenn die Anforderungen geändert werden. Wenn Sie sich mit XAML und der WPF-Mechanik auskennen, können Sie Anwendungen erstellen, die mit geringem Aufwand hinsichtlich des Erscheinungsbilds geändert werden können.
Da der Designer die XAML generiert, ist die Komposition nicht optimal und die Benutzeroberfläche kann eine schlechte Leistung erbringen. Ich habe es nicht gemessen, es ist nur ein Gefühl.
Eine viel bessere Alternative ist MS Blend , obwohl der Start alles andere als einfach ist. Das Drag & Drop-Ergebnis ist viel besser als das Ergebnis des VS-Designers.
Aber es ist ein ziemlich mächtiges Werkzeug, mit dem Sie ziemlich mächtige Elemente verwenden können, um eine hochmoderne Benutzeroberfläche zu erstellen. Ich empfehle, mindestens einen kurzen Workshop zu besuchen, um sich ein Bild von den Möglichkeiten zu machen.
Zurück zu Ihrer Frage, IMHO, und ich denke, viele Leute sind sich einig, besorgen Sie sich ein gutes Buch, zB WPF Unleashed und später, wenn Sie mehr über die Details erfahren möchten, WPF Pro . Es gibt viele Funktionen, die sich von unterscheiden
Winforms
. Sie werden sie mit keinem Designer kennenlernen. Ich denke, das ist der beste Ansatz.Bitte beachten Sie auch, dass es viele Frameworks und Bibliotheken (z. B. MVVM Light , WPFToolkit ) gibt, die bereits einige häufig auftretende Probleme lösen. Es ist also nicht notwendig, das Rad neu zu erfinden.
quelle
Ich weiß, dass dies eine alte Frage ist, aber zum Nutzen aller anderen, die sich das ansehen, denke ich, ich sollte das Gleichgewicht ein wenig verbessern. Wenn ich einige der anderen Antworten lese, habe ich das Gefühl, dass einige der Designer den Designer nicht benutzen Das Gefühl kommt davon, es nicht richtig zu benutzen. Dieses Tutorial ist ziemlich gut, um Sie zum Laufen zu bringen und beantwortet einige der Kritikpunkte in den anderen Beiträgen.
Sie können beispielsweise vom Winforms-ähnlichen randbasierten Layout, das beim Löschen eines Steuerelements standardmäßig verwendet wird, zu einem WPF-ähnlichen Stil wechseln, indem Sie mit der rechten Maustaste klicken und "Layout zurücksetzen" auswählen.
Dieses Video deckt einen ähnlichen Bereich ab.
Ich bevorzuge immer noch den VS2010-Designer im Gleichgewicht - VS2013 scheint beim Ziehen und Ablegen auf TabItems ** (das in meinem aktuellen Projekt häufig verwendet wird) etwas fehlerhaft zu sein - aber in der VS2013-Dokumentumrissansicht können Sie auch in dieser Ansicht Dinge verschieben , was ein echtes Plus sein kann.
Um WPF und xaml optimal nutzen zu können, müssen Sie jedoch sowohl die Designer- als auch die xaml-Ansicht einigermaßen fließend beherrschen und zwischen ihnen wechseln. Wenn Sie sich vor dem Designer scheuen, verpassen Sie etwas, das Ihnen sehr helfen kann.
** Bearbeiten - obwohl dies in Update 3 für VS 2013 und in der Vorschau von VS14 verbessert worden zu sein scheint, bekomme ich bis heute manchmal immer noch merkwürdiges Verhalten.
quelle
Zunächst sollten Sie in WPF (XAML) in Visual Studio deisgner immer den xaml-Code verwenden, um Ihre Benutzeroberfläche zu erstellen, und Ihre Steuerung nicht per Drag & Drop verschieben! Sie müssen Ihren Code sauber halten. Sie können Expression Blend verwenden, um Ihnen zu helfen. Es ist grafischer per Drag & Drop ausgerichtet, aber nicht kostenlos.
Es ist keine große Lernkurve, aber ich denke, Sie sollten lernen, wie Sie Ihre XAML von Hand machen, anstatt nach Alternativen zu suchen.
quelle
Ich habe diesen Prozess genauso durchlaufen wie Sie. Danach unterrichtete ich alle in meiner Firma WPF. Ich habe einige wichtige Lektionen gelernt und jeden, den ich kenne, der mit WPF arbeitet.
Es macht die Entwicklung der Benutzeroberfläche Spaß. Besonders wenn Sie herausfinden, wie gerne Sie mit Asyc-Prozessen spielen. Es nimmt wirklich viele der Kopfschmerzen weg, die durch Winforms verursacht wurden.
quelle