How to navigate to other page with button in WPF

71,522

Solution 1

Solution to my own question:

I feel a bit silly providing a solution to my own question but thanks to Jasti's link I was able to sort my code out. As he had only posted a comment, I can't mark it as an answer, so here is the solution.

I changed the NavigationWindow to a Window and inserted:

<DockPanel>
    <Frame x:Name="_NavigationFrame" NavigationUIVisibility="Hidden" />
</DockPanel>

And within the constructor of the MainWindow.xaml.cs I added:

_NavigationFrame.Navigate(new Page1());

Then the last step was to adjust the button event handler to:

this.NavigationService.Navigate(new Uri("Pages/Page2.xaml", UriKind.Relative));

Solution 2

You should use this, this worked for me:

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.

There is a variable type of a page with the page.xaml right name in your solution. after that, you should use its methods to do it functionally.

Share:
71,522

Related videos on Youtube

Jake
Author by

Jake

PhD student split between the University of Oxford, UK and the National Institutes for Health, USA. Interested in Full Stack and Python. In my spare time I build Node.js web apps.

Updated on July 19, 2022

Comments

  • Jake
    Jake almost 2 years

    I have a second .xaml page set up under the name Page2.xaml and I want to make it so that when my button is clicked, the user is taken to Page2.xaml

    I have this for my button inside of my Page1.xaml:

    <Grid>
        <Button x:Name="localModeBtn" 
                Style="{StaticResource MainButtonStyle}"  
                Content="local mode" 
                Click="localModeBtn_Click" />
    </Grid>
    

    And for the button event handler:

    private void localModeBtn_Click(object sender, RoutedEventArgs e)
        {
            Uri uri = new Uri("Page2.xaml", UriKind.Relative);
            this.NavigationService.Navigate(uri);
        }
    

    Upon clicking the button I receive an error that says "Cannot locate resource page2.xaml" The thing is that Page2.xaml is in the same folder as Pag1.xaml so I can't see where I've gone wrong?

  • sohaiby
    sohaiby about 7 years
    My buttons becoming disabled when I'm trying to apply Command="NavigationCommands.GoToPage"
  • Tom Aranda
    Tom Aranda over 6 years
    Generally, answers are much more helpful if they include an explanation of what the code is intended to do, and why that solves the problem without introducing others.
  • Milad Xandi
    Milad Xandi over 6 years
    D`accord! I it requires a short description.