2009-05-14 10 views
0

Dans le formulaire d'entrée de mon application wpf, j'ai une liste de boutons où l'utilisateur peut sélectionner où il veut faire, par exemple. entrez un nouveau client, exécutez le rapport ...wpf naviguer formulaire pour former?

Quelle est la meilleure façon d'afficher le formulaire (par exemple entrer un nouveau client) après la sélection de l'utilisateur? Je ne veux pas que le formulaire soit un pop up. Cacher également le travail en cours et montrer le formulaire suivant ne fonctionnera pas, car l'application wpf est hébergée dans l'application window32.

Ma conjecture est de construire chacune des fonctionnalités dans le contrôle de l'utilisateur. Sur la page d'entrée, chargez tous les contours utilisateur dans XAML, mais cachez-les. Affiche le contrôle respectivement de l'utilisateur lorsque l'utilisateur le sélectionne.

Depuis que je suis nouveau à WPF, je ne suis pas sûr si c'est la manière de le faire. il semble qu'il y ait des frais généraux sur le chargement de tous les contrôles.

Merci pour votre aide.

Angela

Répondre

2

ont une liste de tous les boutons sur le côté gauche de la fenêtre

Button 1 ---------------------- 
Button 2 |  User Control | 
     |  Container  | 
etc.  |--------------------| 

basée sur la sélection sur le bouton-à-dire à gauche 1 = nouveau client, le contrôle de l'utilisateur sur la droite va charger la mise en œuvre de l'utilisateur de contrôle nouveau client et le placer dans le conteneur, de même quand il appuie sur une autre option, il aura une implémentation différente placée dans le conteneur. De cette façon, vous pouvez disposer de son travail précédent quand il a terminé ou a déménagé à une autre option.

1

Ce que vous proposez est une approche assez courante, que je recommanderais probablement.

Si vous avez vraiment besoin de basculer entre les fenêtres, vous pouvez le faire.

Application.Current.MainWindow = newWindow; 
     newWindow.Show(); 
     sourceWindow.Close(); 

Si une nouvelle fenêtre est une référence à la fenêtre que vous souhaitez afficher et sourceWindow est la fenêtre en cours

Questions connexes