Maison >Problème commun >La différence entre wpf et winform

La différence entre wpf et winform

(*-*)浩
(*-*)浩original
2019-06-14 11:55:2943089parcourir

WinForm est le nom de la plate-forme de développement Windows Form in Net.

WPF (Windows Présentation Foundation) est un framework d'interface utilisateur basé sur Windows lancé par Microsoft et fait partie du .NET Framework 3.0. Il fournit un modèle de programmation, un langage et un cadre unifiés, séparant véritablement le travail des concepteurs et des développeurs d'interfaces, tout en fournissant une nouvelle interface graphique utilisateur interactive multimédia. Il s'agit d'un produit lancé par Microsoft pour remplacer Winform. Il peut séparer le travail des concepteurs et des développeurs d'interface et fournir une interface graphique utilisateur interactive multimédia. Les trois ensembles d'assemblage de base sont présentationcore, présentationFramework et windowsBase

La différence entre wpf et winform

La plus grande différence entre WPF et Winform est que WPF utilise DirectX sur la couche inférieure, tandis que Winform utilise GDI+ sur la couche inférieure, donc l'interface graphique de WPF est supérieure

(apprentissage recommandé :

Tutoriel vidéo PHP)

Interface de périphérique graphique GDI+ (Graphics Device Interface), sa tâche principale est d'être responsable de l'échange et du traitement des informations entre les programmes de dessin, et la sortie graphique de tous les programmes Windows

L'interface de programmation multimédia DirectX (Direct Extension), qui améliore les graphiques 3D et les effets sonores, se compose de nombreuses API. Il peut être divisé en quatre parties selon sa nature : partie affichage, partie son, partie entrée et partie réseau

Lors du développement de programmes WinForm, l'un des problèmes les plus gênants est que le thread de travail modifie les propriétés du contrôle, provoquant le crash du programme, et cette opération illégale n'échoue pas à chaque fois. Le contrôle WinForm fournit la propriété InvokeRequired pour déterminer si le thread actuel est le thread de création du contrôle. Le problème est que lorsque l’arborescence de contrôle est très profonde, cette propriété sera plus lente.

Lorsque WPF a été conçu pour la première fois, le multithreading a été pris en compte. La plupart des classes WPF héritent de DispatcherObject. DispatcherObject est en fait une simple encapsulation de Dispatcher. Dispatcher fournit une méthode similaire à InvokeRequired (CheckAccess). Cette méthode compare simplement les ID de thread, elle sera donc rapide. De plus, Dispatcher fournit une file d'attente prioritaire, un appel asynchrone, une minuterie et d'autres fonctions, simplifiant le développement de programmes GUI multithread.

Composition du champ

Si vous souhaitez implémenter un menu déroulant avec une Checkbox dans WinForm, vous devrez traiter des Messages de la fenêtre. Grâce au système de modèle de contenu et de mise en page des contrôles WPF, les contrôles WPF peuvent inclure tout type de contrôle, même les objets .Net CLR. De nombreux fabricants de contrôles modernes proposent également des contrôles de composition, et les méthodes d'implémentation sont similaires au modèle de contenu de WPF. L'équipe de développement de WPF aurait dû emprunter de nombreuses idées d'Infragistics. Avec cette base, le développement de nouveaux contrôles WPF est plus facile.

XAML

Personnellement, je pense que XAML devrait être une chose plus marquante dans WPF. Grâce à XAML, nous pouvons décrire des graphes d'objets complexes dans du texte. Cette idée existe déjà en VB, mais XAML est simplifié afin que des outils puissent être utilisés pour générer du XAML. Grâce à des mécanismes tels que les commandes et les événements de routage, les concepteurs d'interfaces et les programmeurs ont des limites relativement claires.

Pour plus d'articles techniques liés à PHP, veuillez visiter la colonne

Tutoriel graphique PHP pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:où est la barre de menuArticle suivant:où est la barre de menu