8 votes

Quelle est la meilleure approche pour une application MDI dans WPF ?

Je développe une application WPF pour un magasin.

J'ai donc une fenêtre principale et tous les autres seront des enfants.

Quelle est la meilleure chose à utiliser comme fenêtre enfant.

  1. Fenêtre
  2. Contrôle utilisateur

La fenêtre sera normale, elle sera placée au-dessus de la fenêtre principale et, s'il s'agit d'un contrôle utilisateur, elle se trouvera dans le canevas d'une fenêtre principale.

Quelqu'un peut-il me suggérer lequel de ces deux est le meilleur à utiliser ?

9voto

BiggsTRC Points 10362

Je recommanderais l'utilisation de UserControls pour votre enfant Windows. Cela vous permet de configurer tous les contrôles "parents" sur votre fenêtre principale et les enfants ne les remplaceront pas.

Par ailleurs, je vous recommande d'examiner Caliburn Micro. Il s'agit d'un excellent cadre de travail pour traiter les contrôles Windows et utilisateur WPF.

Pour ajouter un UserControl enfant à la fenêtre parent, j'ajoute généralement un ContentControl à mon formulaire principal, comme suit :

<ContentControl x:Name="ViewWindow" Margin="10" />

Attribuez simplement ce contrôle à votre enfant et tout ira bien.

4voto

Je suggère d'utiliser un framework MDI comme AvalonDock : http://avalondock.codeplex.com/ Vous gagnerez beaucoup de temps.

2voto

Sunny Points 3189

Comme beaucoup de choses dans la vie et le codage : cela dépend :)

  • Fenêtre

    • Lorsque la nouvelle fenêtre a son propre état et son propre comportement
    • Lorsqu'il n'y a que peu ou pas d'interaction/message entre la fenêtre principale et la fenêtre contextuelle.
  • Contrôle de l'utilisateur

    • Lorsque l'état de la fenêtre principale sous-jacente est critique pour le fonctionnement de la fenêtre contextuelle
    • Lorsque des changements d'état doivent être transmis entre les deux fenêtres

Voici quelques-unes des décisions de conception qui me viennent à l'esprit...

2voto

Denny Points 119

Veuillez consulter le site web : http://wpfmdi.codeplex.com/

1voto

Allan Chua Points 1454

Les fenêtres enfant sont idéales pour une application de bureau lorsque vous décidez d'utiliser une interaction parent-enfant, bien que je vous suggère personnellement d'utiliser un cadre dans votre fenêtre principale et de l'utiliser pour héberger plusieurs pages.

Pour en savoir plus sur la navigation dans WPF et Silverlight, vous pouvez consulter le site suivant ce lien

Cette approche vous permettra de bénéficier des avantages suivants :

  1. Moins de risques de fuites de mémoire dues à des gestionnaires d'événements non attachés.
  2. Il est possible d'obtenir une conception cohérente sans indiquer de style pour les fenêtres enfant, car il est possible de rendre les arrière-plans des pages transparents.
  3. Les utilisateurs n'auront pas de difficulté à localiser la fenêtre qui a la priorité lorsque d'autres programmes sont utilisés simultanément avec le logiciel que vous créez.

Je pense également qu'il y a beaucoup de choses que vous pouvez prendre en compte dans la création de ce logiciel, mais en fin de compte, c'est toujours vous qui devez prendre la décision à ce sujet.

Ce n'est qu'une suggestion et j'espère que cela vous aidera :) .

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