11
votes

Créer des pages ou des fenêtres dans WPF

Je suis nouveau à utiliser WPF. J'ai le programme suivant que je veux créer: -Application s'ouvre avec un seul bouton -Utilisateur clique sur le bouton et il les prend sur une nouvelle page avec diverses entrées.

Je suis confus sur la façon dont j'ai besoin de faire cela. J'ai essayé d'ouvrir une nouvelle fenêtre, mais je ne veux pas qu'une fenêtre s'ouvre, je veux que ce soit tout une fenêtre. J'ai essayé de créer une nouvelle page et de la naviguer à l'aide de NavigationVice, mais je ne pouvais pas le faire fonctionner.

Fondamentalement, je souhaite créer un flux de travail dans lequel l'utilisateur entre dans certaines choses, clique sur le bouton Suivant et est dirigé vers une nouvelle page pour entrer encore plus d'informations. Quelqu'un peut-il me dire dans la bonne direction?

wpf

0 commentaires

4 Réponses :


1
votes

L'utilisation du service de navigation est la bonne façon de le faire. Vous devez ajouter un cadre à vos fenêtres pour afficher vos pages, puis naviguer entre eux avec la navigationservice.


1 commentaires

Comment ferais-je cela? Par exemple, j'ai une forme dans ma fenêtre principale qu'une source pointant vers pages1.xaml. Sur la page1.xaml, j'ai un bouton et utilisé le code suivant dans l'événement de clic: this.navigationservice.navigater ("page2.xaml"); Cela semble simplement montrer le texte "page2.xaml" sur la page et non la page réelle.



0
votes

Vous pouvez modifier la référence principale de votre objet d'application à un autre objet de fenêtre. XXX


0 commentaires

12
votes

Utilisez des pages dans votre application et utilisez NAVIGATIONATIONService pour basculer entre eux.

Par exemple, si vous avez deux pages dans votre paperlication, "Page1" et "page2" Vous pouvez inclure les éléments suivants dans la page1.xaml: p> xxx pré>

et ceci dans votre page1.xaml.cs: p> xxx pré>

Vous pouvez également utiliser ceci: p>

  NavigationSerivce.Navigate(App.Page2);


1 commentaires

Juste pour ajouter à cela avec une promenade à travers l'exemple: docs.microsoft.com/en-us/dotnet/framework/wpf/getting-starte d / ...



2
votes

Initialement, il ne semble pas y avoir une grande partie de la préférence de ce qui devrait être utilisé: pages ou fenêtres. Cependant, en regardant l'objectif prévu de la demande, je suggérerais d'utiliser Usercontrols au lieu de pages, car les pages semblent se concentrer sur le contenu Web associé, bien qu'ils puissent être utilisés dans des applications autonomes également. Un autre argument qui a été fabriqué dans Un autre message se réfère à la MSDN-Documentation et souligne que, à l'aide d'une page, NavigationWindow qu'elle est hébergée ne se souvient pas de l'instance du contenu qui est navigué pour et donc d'autres techniques de WPF sont nécessaires pour stocker ce contenu de votre historique de navigation.

NavigationWindow ne stocke pas une instance d'objet de contenu dans l'historique de navigation. Au lieu de cela, NavigationWindow crée une nouvelle instance de l'objet de contenu à chaque fois qu'elle est navigue à l'aide de l'historique de navigation. Ce comportement est conçu pour éviter une consommation de mémoire excessive lorsque de grands nombres et de grandes pièces de contenu sont en cours de navigation. Par conséquent, l'état du contenu ne se souvient pas d'une navigation à l'autre. Toutefois, WPF fournit plusieurs techniques permettant de stocker un état d'état pour un contenu de contenu dans l'historique de navigation.

Si vous utilisez un UserControl, vous n'auriez pas ce problème si votre objectif est de créer une application native de toute façon. Vous pouvez télécharger Ce modèle à titre d'exemple pour utiliser UserControls à la place.


0 commentaires