Depuis longtemps maintenant, je suis coincé avec le développement de Windows Forms (commencé avec VB6, et a continué jusqu'à C # .NET 4.5), et j'ai à peu près atteint la limite de ce que Windows Forms peut faire, tous deux en utilisant .NET pur. et des effets spéciaux avec Native Code.
J'ai essayé d'apprendre WPF et XAML, mais je reste bloqué directement au nouveau concepteur de WPF. Il semble vraiment très difficile à utiliser par rapport au concepteur Windows Forms.
Je veux savoir s'il existe des alternatives au concepteur WPF de .NET, qui conviennent mieux aux développeurs Windows Forms?
Réponses:
J'aime bloguer sur les articles pour débutants pour WPF, et il y en a quelques-uns en particulier qui peuvent vous aider:
Pour résumer, la plus grande différence entre Winforms et WPF est que dans WPF, votre couche de données (la
DataContext
) est votre application, tandis que dans Winforms, votre couche d'interface utilisateur est votre application.Pour voir les choses d'une autre manière, avec WPF, votre application se compose des objets que vous créez et vous utilisez des modèles et d'autres objets d'interface utilisateur pour indiquer à WPF comment dessiner vos composants d'application.
C'est le contraire de WinForms où vous créez votre application à partir d'objets d'interface utilisateur, puis leur fournissez les données nécessaires.
Pour cette raison, le concepteur n'est pas vraiment utilisé car les composants de votre application sont conçus dans le code, et le concepteur est uniquement nécessaire pour dessiner une interface conviviale qui reflète vos classes de données (généralement
Models
etViewModels
)Et personnellement, je préfère taper tout mon XAML à la main car il est plus rapide et ne fait pas autant de dégâts que le concepteur WPF glisser / déposer, bien que j'utilise le concepteur à l'occasion pour prévisualiser à quoi ressemblera mon interface utilisateur comme.
Donc, pour répondre à votre question de savoir s'il existe d'autres concepteurs WPF adaptés aux développeurs WinForms, je suggérerais qu'au lieu de chercher un autre concepteur, cherchez plutôt à apprendre à utiliser WPF de la manière dont il est censé être utilisé. Utiliser WPF comme c'est WinForms signifie que vous manquez une grande partie de ce qui le rend si génial :)
la source
Bien que certaines personnes ne soient pas d'accord, je recommande également de ne pas utiliser le concepteur VS. Du moins pas pour créer une interface. Si vous souhaitez avoir une première impression de votre implémentation sans démarrer l'application, c'est un bon visualiseur au moins tant que des éléments sophistiqués comme
Styles
et neTemplates
sont pas utilisés. Mais, à mon humble avis, son résultat de glisser-déposer ne doit être utilisé que comme prototype et donc être jeté après qu'il n'est plus nécessaire.Voici quelques raisons importantes pour moi de ne pas l'utiliser.
Le concepteur VS travaille avec des marges et des alignements fixes (ce qui n'est généralement pas nécessaire si vous utilisez les contrôles de disposition), ce qui signifie que vous devez toucher de nombreux contrôles, si les exigences sont modifiées. Si vous maîtrisez XAML et la mécanique WPF, vous pouvez créer des applications qui peuvent être modifiées avec un petit effort, en ce qui concerne l'aspect et la convivialité.
Étant donné que le concepteur génère le xaml, la composition n'est pas optimale et l'interface utilisateur peut mal fonctionner. Je ne l'ai pas mesuré, c'est juste un sentiment.
Une bien meilleure alternative est MS Blend , bien que le début soit tout sauf simple. Son résultat de glisser-déposer est bien meilleur que celui du concepteur VS.
Mais c'est un outil assez puissant, qui vous aide à utiliser des éléments assez puissants pour créer une interface utilisateur à la pointe de la technologie. Je recommande de visiter au moins un petit atelier pour avoir une idée de ses opportunités.
De retour à votre 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 existe de nombreuses fonctionnalités différentes de
Winforms
. Vous ne les connaîtrez pas en utilisant un concepteur. Je pense que c'est la meilleure approche.Veuillez également considérer qu'il existe de nombreux frameworks et bibliothèques (par exemple MVVM light , WPFToolkit ), qui résolvent déjà certains problèmes courants. Il n'est donc pas nécessaire de réinventer la roue.
la source
Je sais que c'est une vieille question, mais pour le bénéfice de quiconque regarde cela, je pense que je devrais un peu rétablir l'équilibre - en lisant certaines des autres réponses, j'ai le sentiment que certaines des `` n'utilisent pas le concepteur «le sentiment vient de ne pas l'utiliser correctement. Ce tutoriel est assez bon pour vous lancer et répond à certaines des critiques dans les autres articles.
Par exemple, vous pouvez passer de la disposition basée sur les marges de type Winforms, qui est la valeur par défaut lorsque vous déposez un contrôle, à un style plus WPF-ish en cliquant avec le bouton droit et en sélectionnant `` Réinitialiser la disposition ''
Cette vidéo couvre un terrain similaire.
Je préfère toujours le concepteur VS2010 dans l'ensemble - VS2013 semble être un peu bogué lors du glisser-déposer sur TabItems **, (que mon projet actuel utilise beaucoup) - mais la vue Structure du document VS2013 vous permet également de déplacer les choses dans cette vue. , ce qui peut être un vrai plus.
Vraiment, cependant, pour tirer le meilleur parti de WPF et de xaml, vous devez maîtriser raisonnablement à la fois la vue du concepteur et la vue xaml et passer de l'une à l'autre; si vous évitez le designer, vous manquez quelque chose qui peut beaucoup vous aider.
** Modifier - bien que cela semble avoir été amélioré dans la mise à jour 3 pour VS 2013 et dans les aperçus de VS14, à ce jour, j'ai toujours un comportement étrange à certains moments.
la source
Tout d'abord, dans WPF (XAML) dans Visual Studio deisgner, vous devez toujours utiliser le code xaml pour créer votre interface utilisateur et ne pas faire glisser et déposer votre contrôle! Vous devez garder votre code propre. Vous pouvez utiliser Expression Blend pour vous aider, il est plus orienté graphique avec le glisser-déposer, mais ce n'est pas gratuit.
Ce n'est pas une grande courbe d'apprentissage, mais je pense que vous devriez apprendre à faire votre xaml à la main au lieu de chercher une alternative.
la source
J'ai traversé ce processus comme vous l'avez fait. Ensuite, j'enseignais à tout le monde dans mon entreprise WPF. Il y a quelques leçons importantes que j'ai apprises et toutes les personnes que je connais qui travaillent avec WPF.
Cela rend le développement de l'interface utilisateur amusant. Surtout une fois que vous découvrez comment il aime jouer avec les processus Asyc. Cela enlève vraiment beaucoup de maux de tête causés par Winforms.
la source