117 votes

La transition vers WPF dans les Windows Forms

Pour un long moment maintenant, j'ai été coincé avec Windows Forms développement (commencé avec VB6, et a continué à travers de C# .NET 4.5), et j'ai énormément de frapper la limite de ce que les Formes de Windows peut le faire, à la fois à l'aide pur .NET, et des effets spéciaux avec du Code Natif.

Je sais que WPF est l'avenir (pour l'instant), et Windows Forms est le ralentissement de devenir une technologie obsolète.

J'ai essayé d'apprendre WPF et XAML, mais je suis coincé à droite à WPF nouveau designer...Il semble vraiment très difficile à utiliser en comparaison avec le concepteur Windows Forms...bien sûr...c'est juste une courbe d'apprentissage, et à un certain moment, j'ai l'intention d'aller sur un cours pour apprendre WPF correctement.

En attendant, je veux savoir s'il y a des alternatives .NET concepteur WPF, qui sont plus adaptés pour les développeurs Windows Forms?

186voto

Rachel Points 49408

Je blog à propos de débutant articles pour WPF, et il y a un peu particulier qui peut vous aider:

Pour résumer, la plus grande différence entre les Winforms et WPF est que dans WPF votre couche de données ( DataContext) est votre application, tandis que dans les Winforms votre couche d'INTERFACE utilisateur est votre application.

Pour regarder une autre façon, avec WPF votre application se compose des objets que vous créez et que vous utilisez des Modèles et d'autres objets de l'INTERFACE utilisateur à dire WPF comment dessiner les composants de votre application.

C'est l'opposé de WinForms où vous construisez votre application en dehors des objets de l'INTERFACE utilisateur, puis de leur fournir les données nécessaires.

De ce fait, le concepteur n'est pas utilisé que depuis les composants de votre application sont conçus dans le code, et le concepteur n'est nécessaire pour dessiner une interface conviviale qui reflète vos classes de données (typiquement Models et ViewModels)

Et personnellement, je préfère le type de tout mon XAML à la main, car il est plus rapide et ne pas faire autant de bordel que le glisser/déposer concepteur WPF fait, bien que je n'utilise pas le Concepteur, à l'occasion, un aperçu de ce qui ma UI va ressembler.

Donc, pour votre réponse à votre question sur si il y a d'autres WPF concepteurs adapté pour les WinForms développeurs, je suggère qu'au lieu de chercher un autre concepteur, au lieu de le regarder pour savoir comment utiliser WPF dans la façon dont il est censé être utilisé. L'utilisation de WPF comme c'est WinForms signifie que vous manquez beaucoup de ce qui le rend si génial :)

9voto

DHN Points 2572

Bien bien, certaines personnes ne sont pas d'accord, je recommande de ne pas utiliser le VS designer. À moins de ne pas créer une interface. Si vous souhaitez obtenir une première impression de votre application sans démarrer l'application, il est un bon observateur au moins aussi longue pas les choses sophistiquées comme Styles et Templates sont utilisés. Mais, à mon humble avis, son faites glisser et déposez le résultat ne doit être utilisé comme prototype et, par conséquent, être jetés après il n'est plus nécessaire.

Voici quelques raisons qui sont important pour moi de ne pas l'utiliser.

  1. Le VS designer travaille avec fix marges et les alignements (qui n'est habituellement pas nécessaire, si vous utilisez les commandes de mise en page), signifie que vous avez de toucher à de nombreux contrôles, si les conditions sont changées. Si vous êtes profondément dans le XAML et WPF mécanique, vous pouvez créer des applications qui peuvent être modifiées avec un petit effort, concernant l'aspect et la convivialité.

  2. Puisque le concepteur est de générer le code xaml, la composition n'est pas optimal et l'INTERFACE utilisateur peut mal fonctionner. Je n'ai pas de mesure, c'est juste un sentiment.

Une bien meilleure solution est MS Mélange, même si le début est tout, sauf facile. Ses faites glisser et déposez le résultat est beaucoup mieux que le résultat de la VS designer.
Mais c'est vraiment un outil puissant qui vous aide à utiliser assez puissant éléments pour créer un état de l'art de l'INTERFACE utilisateur. Je vous recommande de visiter au moins d'un court atelier pour vous faire une idée de ses possibilités.

Pour revenir à ta question, à mon humble avis, et je pense que beaucoup de gens sont d'accord, procurez-vous un bon livre par exemple, WPF Unleashed et plus tard, si vous voulez en savoir plus sur les détails, WPF Pro. Il ya beaucoup de caractéristiques qui sont différentes de Winforms. Vous n'aurez pas à apprendre à les connaître par l'utilisation de tout designer. Je pense que c'est la meilleure approche.

Veuillez également prendre en considération qu'il existe de nombreux frameworks et bibliothèques (par exemple, MVVM light, WPFToolkit, qui sont déjà à résoudre certains problèmes courants. Il n'est donc pas nécessaire de réinventer la roue.

9voto

peterG Points 1109

Je sais que c'est une vieille question, mais pour le bénéfice de quelqu'un d'autre en regardant cela, je pense que je devrais rétablir l'équilibre un peu de lecture de certains des autres réponses, j'ai l'impression que certains "ne pas utiliser le concepteur de" sentiment vient de ne pas l'utiliser correctement. Ce tutoriel est assez bon pour vous aider à aller et réponses à certaines des critiques dans les autres postes.

Par exemple, vous pouvez basculer entre les Winforms-comme la marge de mise en page qui est la valeur par défaut lorsque vous déposez un contrôle, à une plus WPF-ish style par un clic droit et en sélectionnant l'option "Réinitialiser Disposition'

Cette vidéo couvre des domaines similaires.

Je préfère encore le VS2010 designer sur la balance VS2013 semble être un peu buggy lors d'un glisser-déposer sur TabItems **, (mon projet actuel utilise beaucoup) - mais la VS2013 Document en mode plan permet de déplacer les choses de ce point de vue aussi, ce qui peut être un vrai plus.

Vraiment, cependant, à obtenir les la plupart hors de WPF et xaml, vous devez avoir une bonne connaissance à la fois le concepteur de vue et la vue xaml et la commutation entre eux; si vous fuyez le concepteur, vous êtes absent dehors sur quelque chose qui peut vous aider beaucoup.

** Edit - bien que cela semble avoir été améliorée dans la mise à Jour 3 pour VS 2013, et dans les aperçus de VS14, à ce jour, je reçois toujours des comportements bizarres à la fois.

7voto

mlemay Points 907

Tout d’abord, en WPF (XAML) dans Visual Studio deisgner, vous devez toujours utiliser le code xaml vous construire une interface utilisateur et ne pas glisser et déposez vous contrôle ! Vous devez nettoyer votre code. Vous pouvez utiliser Expression Blend pour vous aider, c’est plus graphique orienté avec drag and drop, mais ce n’est pas gratuit.

Il n’est pas une grande courbe d’apprentissage, mais je pense que vous devriez apprendre à faire votre xaml à la main au lieu de chercher la solution de rechange.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X