J'ai une deuxième page .xaml configurée sous le nomPage2.xaml
et je veux que cela soit fait de sorte que lorsque l'utilisateur clique sur mon bouton, l'utilisateur est redirigé versPage2.xaml
J'ai ceci pour mon bouton à l'intérieur de monPage1.xaml
:
<Grid>
<Button x:Name="localModeBtn"
Style="{StaticResource MainButtonStyle}"
Content="local mode"
Click="localModeBtn_Click" />
</Grid>
Et pour le gestionnaire d'événement de bouton:
private void localModeBtn_Click(object sender, RoutedEventArgs e)
{
Uri uri = new Uri("Page2.xaml", UriKind.Relative);
this.NavigationService.Navigate(uri);
}
Lorsque je clique sur le bouton, un message d'erreur "Impossible de localiser la ressourcepage2.xaml
" .__ apparaît. Le problème est quePage2.xaml
se trouve dans le même dossier quePag1.xaml
je ne vois pas où Je me suis trompé?
Solution à ma propre question:
Je me sens un peu bête de fournir une solution à ma propre question, mais grâce à link de Jasti, j'ai pu trier mon code. Comme il avait seulement posté un commentaire, je ne peux pas le marquer comme une réponse, alors voici la solution.
J'ai changé le NavigationWindow sur une fenêtre et inséré:
<DockPanel>
<Frame x:Name="_NavigationFrame" NavigationUIVisibility="Hidden" />
</DockPanel>
Et dans le constructeur de MainWindow.xaml.cs, j'ai ajouté:
_NavigationFrame.Navigate(new Page1());
La dernière étape consistait ensuite à ajuster le gestionnaire d’événements des boutons sur:
this.NavigationService.Navigate(new Uri("Pages/Page2.xaml", UriKind.Relative));
Vous devriez utiliser ceci, cela a fonctionné pour moi :
var Page2= new Page2(); //create your new form.
Page2.Show(); //show the new form.
this.Close(); //only if you want to close the current form.
Il y a un variable type
d'une page avec le nom de page page.xaml dans votre solution . Après cela, vous devriez utiliser ses méthodes pour le faire fonctionnellement.
Vous n'avez besoin d'aucun code C # pour cela, faites-le simplement en XML:
<Button Content="local mode"
Command="NavigationCommands.GoToPage"
CommandParameter="/Page2.xaml"/>
(Code reformaté non testé)
Si vous voulez une fenêtre séparée
NavigationWindow navWIN = new NavigationWindow();
navWIN.Content = new pageWFbchAdmin();
navWIN.Show();
//winBchAdmin.ShowDialog();
private void Navigate_Click(object sender, RoutedEventArgs e)//By Prince Jain
{
this.NavigationService.Navigate(new Uri("Page3.xaml", UriKind.Relative));
}
Utilisez n'importe quel conteneur et liez le contenu à n'importe quelle propriété de votre modèle de vue ou de codebehind . Après cela, il vous suffit de mettre à jour la propriété en définissant une nouvelle page et en appelant l'événement PropertyChanged (voir l'interface INotifyPropertyChanged). Cela mettra à jour le contenu de votre conteneur et vous pourrez afficher tout ce que vous voulez.