C# WPF and GUI - Pages and Navigation

Sdílet
Vložit
  • čas přidán 28. 08. 2024

Komentáře • 140

  • @steffenmlgaardlarsen5463
    @steffenmlgaardlarsen5463 Před 4 lety +96

    1 hour of googling failed me. This video answered my question in 7 minutes - Thank you.

    • @wesleycoomans1433
      @wesleycoomans1433 Před 4 lety +7

      Broke record with 4 days :D

    • @RugbugRedfern
      @RugbugRedfern Před 3 lety +6

      What is it about WPF that makes everything so hard to learn...

    • @C4rnee
      @C4rnee Před 3 lety +4

      @@RugbugRedfern There are lots of complex topics which can only be understood if you understand other complex topics, so I guess you just have to read up a ton of theory before you can actually make something that feels like it should be easy to make

    • @sergsergesrgergseg
      @sergsergesrgergseg Před 3 lety +4

      @@RugbugRedfern compared to react, wpf is so overly complicated

    • @RugbugRedfern
      @RugbugRedfern Před 3 lety +2

      @@sergsergesrgergseg I'm switching from WPF to node.js + electron now, so much easier

  • @joseangelbautistar.44
    @joseangelbautistar.44 Před 4 lety +39

    almost 3 hours searching exactly this on google and it was soo simple. Thank you a lot

  • @mjparsons
    @mjparsons Před 8 lety +19

    +1 for the NavigationUIVisibility="Hidden". That's exactly what I was looking for!

    • @limtingfei994
      @limtingfei994 Před 5 lety

      Exactly! That's really annoying and complicated when I tried to disable it from the control template

  • @CodeSeekers
    @CodeSeekers Před 4 lety +10

    Best Tutorial ❤ Simple and Perfectly Explained the Topic, You saved me from attending a boring lecture of 2 hours :D , Thank you very much Sir,

  • @JUNDKGOD
    @JUNDKGOD Před 3 lety +2

    Nice tutorial for new guys like me. Simplily and clearly. maybe its not need to say on this video, but I think there is one bug here that is everytime when you click the "Page # " button, the "main“ frame is gonna creat a new page. So I think the best way is to change the funtion of the button to navigate the pages instead of creating if the page has existed.

    • @000Graffy000
      @000Graffy000 Před rokem +1

      I was searching the comments to make sure, that somebody like me is already sayed about this. :D

  • @doj3168
    @doj3168 Před 4 lety +1

    Man, you helped me with my project. You explained such thing better than Indian programmers. I express my gratitude for your job.

  • @maulanasatyaadi
    @maulanasatyaadi Před rokem

    thanks bro, i've been learning wpf for 1 day.

  • @amiransari8483
    @amiransari8483 Před 2 měsíci

    nice work. simplicity is the best

  • @gaminglegend372
    @gaminglegend372 Před 4 lety

    Thx sooo much, a simple tutorial that gets straight to the point. Now we can safely say that youtube is more superior than google.

  • @joybotics
    @joybotics Před 5 lety +3

    Excellent and concise tutorial! Thank you.

  • @simo5465
    @simo5465 Před 6 lety +16

    Thank you very much :) very helpfull .
    For me work like this :
    Page1 page1= new Page1();
    Main.Content= page1.Content;
    Hope it helps somebody :)

    • @savideos6916
      @savideos6916 Před 5 lety +4

      In Visual Studio 2017, you can also navigate using this way:-
      Button_Click(object sender, RoutedEventArgs e)
      {
      Frame1.Navigate(new Page1());
      }
      this will do the same as..... Frame1.Content = new Page1();
      Thankyou... $@

    • @dmg4011
      @dmg4011 Před 5 lety

      THANK YOU

    • @Leo-kr4vw
      @Leo-kr4vw Před 5 lety +5

      Thanks!
      I also added some more lines, check this:








      //*********************************************************************
      private Page1 p1;
      private Page2 p2;
      private Page3 p3;
      private void Button_Click_1(object sender, RoutedEventArgs e)
      {
      if (p1 == null)
      {
      p1 = new Page1();
      }
      Main.Content = p1.Content;
      }
      private void Button_Click_2(object sender, RoutedEventArgs e)
      {
      if (p2 == null)
      {
      p2 = new Page2();
      }
      Main.Content = p2.Content;
      }
      private void Button_Click_3(object sender, RoutedEventArgs e)
      {
      if (p3 == null)
      {
      p3 = new Page3();
      }
      Main.Content = p3.Content;
      }
      // Clear(delete) all pages
      private void Button_Click_4(object sender, RoutedEventArgs e)
      {
      p1 = null;
      p2 = null;
      p3 = null;
      Main.Content = null;
      }

  • @shjin
    @shjin Před 4 lety +2

    Simple and very effective explanation!

  • @jaycedam1234
    @jaycedam1234 Před 4 lety +2

    Short and simple, thank you!

  • @josephmbote4167
    @josephmbote4167 Před 2 lety

    What a great short tutorial with great impact

  • @jonasb2047
    @jonasb2047 Před 8 lety

    Can't believe this guy works in a public school haha he knows more than some of my University lecturers

  • @niphomahlangu2733
    @niphomahlangu2733 Před 3 lety

    Thank you very much. You've solved most of my problems. You're appreciated.👌🔥🔥🔥

  • @krishnavankadari
    @krishnavankadari Před 7 lety +1

    That's so cool presentation, thanks a lot👏🏾👏🏾👏🏾

  • @ckpradip
    @ckpradip Před 4 lety +4

    Thanks for this video. I have done a bit of programming in C++.
    I got couple of questions :
    1. New() is not having a corresponding delete(). Will this not result in memory leak?
    2. Can these page attributes be accessed from other pages also?

    • @emmanuelasare5658
      @emmanuelasare5658 Před 4 lety +1

      In c# you have to call dispose method on the object created but not every object is disposable so in that case you have to set it to null after you are done using it

  • @msgracebk2978
    @msgracebk2978 Před 3 lety

    I am so thankful for this video.. Thanks for taking your time!!

  • @TwoToedSloth
    @TwoToedSloth Před 2 lety

    Very Helpful. Thank you from the future

  • @angamandu
    @angamandu Před 5 lety +3

    This was super helpful, thank you!

  • @datpudding5338
    @datpudding5338 Před rokem

    Seven years after upload the best solution I found - sadly I got both pages to shine through each other xD

  • @zdillzz
    @zdillzz Před 7 lety +1

    Thanks for the video! Helped me out loads.

  • @simplesource2457
    @simplesource2457 Před rokem

    Thanks so much this is so simple and clear

  • @amanverma193
    @amanverma193 Před 4 lety

    You made my day....Thanks a million

  • @a_bahar
    @a_bahar Před 4 lety

    As you know or not. The Grid control has RowDefinitions and ColumnDefinitions

  • @OTadashi162
    @OTadashi162 Před 5 lety +2

    OMG, i can't believe it's so simple 🙀

  • @mobinabdolalipour2925
    @mobinabdolalipour2925 Před 8 lety +10

    Thank You Thank You Thank You. Helped me a lot

  • @henrykaiser9470
    @henrykaiser9470 Před 2 lety

    Liebe geht raus

  • @SLSL-yy4um
    @SLSL-yy4um Před 7 lety

    You could use a grid inside the stack panel for your button too

  • @floadcope4039
    @floadcope4039 Před 4 lety +1

    Thank you! This was really helpful.

  • @mykolahureiev6466
    @mykolahureiev6466 Před 2 lety

    perfect way to make a memory leaks

  • @aleksandraarsic1100
    @aleksandraarsic1100 Před rokem

    Thank you good sir!

  • @sadiq3690
    @sadiq3690 Před 5 lety

    Very nice and simpy way of doing work.

  • @danielgorgis2616
    @danielgorgis2616 Před 6 lety

    Excatly what i was looking for! thanks man

  • @DaveWatts_ejectamenta

    Nice tutorial, you passed where Microsoft failed.

  • @csscoder9964
    @csscoder9964 Před 4 lety

    Ohh thank you sooo much. This video is great. It helped me a lot😍💕

  • @trieukhac8776
    @trieukhac8776 Před 5 lety +1

    Thank you. Love you so much for uploading this video :D

  • @sadiq3690
    @sadiq3690 Před 5 lety +1

    can a window be displayed in frame the same way as page ?

  • @laurencegr9978
    @laurencegr9978 Před 4 lety

    Very helpful and concise.

  • @michaelhaddad2190
    @michaelhaddad2190 Před 8 lety

    Awesome Tutorial. I do not know why it has so little views.

  • @hwcdi6041
    @hwcdi6041 Před 11 měsíci

    Thank you bro it so usefull

  • @a_bahar
    @a_bahar Před 4 lety +1

    I know you want to teach it simple and fast. But please use WPF features and technologies. Like binding, command, ...

  • @kennylunaaa5596
    @kennylunaaa5596 Před rokem

    Does this work the same way if the navigation buttons are on the pages, instead of the main window?

  • @abcuuxyz
    @abcuuxyz Před 7 lety

    I do not speak English, but I understand the code... thanks!!!!!!!!!!!!!!!!!

  • @rickfuzzy
    @rickfuzzy Před 2 lety

    Excellent. Thank you

  • @far-red
    @far-red Před 3 měsíci

    that is exactly what i wanted to do, in web form is loading new form, in WFP i guess we load pages and not windows.
    thx

  • @fooballers7883
    @fooballers7883 Před rokem

    Nice clear and concise.. thanks...

  • @deltavalley4020
    @deltavalley4020 Před rokem

    great stuff

  • @mr.es1857
    @mr.es1857 Před 6 lety

    Thank you i'm using this aproach for a WPF.
    -I have this main window with it's view model called MainViewModel.
    - This main window can hold several pages in the frame all pages have their own viewmodel.
    -I have a button in one of the pages and in it's button click i want to display a "Fly out" in the "MainWindow" . The content of this fly out depends of the page that is actually shown in the frame. This part works correctly but i can't achive to open the fly out from the page 's button click.
    -I was wondering if there is any way to do this or if you have an advice for me.

  • @Chefspatz
    @Chefspatz Před 2 lety

    I love it! Thanks! :)

  • @77Zamien
    @77Zamien Před 7 lety +5

    Good presentation. Is this possible to do within XAML to stay more MVVM correct?

    • @ilfordgrammarschool4270
      @ilfordgrammarschool4270  Před 7 lety +7

      Sure, I would just set up data binding on the Content property and handle the page switching from the ViewModel. . You could even set up the page switching control using two way binding on a different element.
      Here is another MVVM approach: rachel53461.wordpress.com/2011/12/18/navigation-with-mvvm-2/
      Have a look here at a possible pure xaml approach: msdn.microsoft.com/en-us/library/ms750478(v=vs.110).aspx

  • @pepperplume
    @pepperplume Před 8 lety +1

    Nice vid, have a thumbs up

  • @codewithkhattak4757
    @codewithkhattak4757 Před 4 lety

    Very helpful, Thanks

  • @polyviospatseadis9777

    Very nice video but how i can change the main content inside the page2 for example

  • @tobiassjoholm9325
    @tobiassjoholm9325 Před rokem

    What is the purpose of the frame?
    You could have just use any container element

  • @shmutalov
    @shmutalov Před 8 lety +1

    Good tutor. Thank you

  • @brigoose7945
    @brigoose7945 Před 4 lety

    st question you start off in visual studio....what did you open, i usually open project/win application. What have you opened for the plain page

  • @technologynews3143
    @technologynews3143 Před 2 lety

    Hallelujah !! But why this way or MVVM ?

  • @fernandoarnaldovilanculo8286

    Hero!

  • @symonxd
    @symonxd Před 4 lety

    Very informative, arigato

  • @pashaPDX
    @pashaPDX Před 3 lety

    How to pass the data between the two pages? or to the main window? Can page1 update data that is outside the FRAME?

  • @jaym9846
    @jaym9846 Před 6 lety

    Can I have multiple instances of a Page1 and Page2? Can I keep a page instance loaded even if it not visible?
    For example, if I have buttons Page1a, Page1b, Page2a, Page2b where clicking Page1a instantiates and displays the first instance of Page1,
    can I then click Page1b to instantiate and displays the second instance of Page1 without unloading first instance from memory?

  • @mohdrafionline
    @mohdrafionline Před 6 lety

    To the point, Perfect (y)

  • @A__Singh__
    @A__Singh__ Před rokem

    'Auto naming for the win' lol

  • @bfarhan8
    @bfarhan8 Před 3 lety

    Great Explanation, one question though can I use 3 different pages in a single frame?

  • @itskrypton2662
    @itskrypton2662 Před 3 lety +1

    How do i make it go back on the default screen content?

  • @voidvary8854
    @voidvary8854 Před 4 lety

    very helpful thanks!

  • @j2Cuser
    @j2Cuser Před 5 lety

    Thank you, nice job :-)

  • @julianesteves41
    @julianesteves41 Před 4 lety

    It's good but this create a new instance for each click, and it's convenient a hierarchical navigation structure in most cases. but, thanks!

  • @katharinamuller240
    @katharinamuller240 Před 3 lety

    Is there a way to remove the buttons in Main so they don't take up space in Pages 1 + 2 ? Thanks.

  • @sealkeen
    @sealkeen Před 5 lety

    Thank you, sir!

  • @jeffstarkmann6381
    @jeffstarkmann6381 Před 8 lety

    Thank you, men !

  • @johnolive6634
    @johnolive6634 Před 4 lety

    Thanks very much
    Am trying to develop and I need to create an editable page like that of Microsoft word which can also automatically insert pages. But don't have any idea.
    Any information or video will do.
    Thanks in advance

  • @Magnotis
    @Magnotis Před 4 lety

    Is there a way to set it so that the content of one page displays automatically? I'm trying to make a login screen and I want to use a page for my registration form, but also display my other page which has the actual login within it

  • @whoman0385
    @whoman0385 Před 2 lety

    You have saved my braincells thank you sir

  • @kiwichi4488
    @kiwichi4488 Před 6 lety

    Now how do you page these pages scrollable if they are too large for the frame?

  • @mr.es1857
    @mr.es1857 Před 6 lety

    well i know that this question would out of context but... i´m having problems when i try too shutdown my app im using the property of ShutdownMode in the App.xaml. Putting it's value to "OnLastWindowClose" and it does't work. When i close the app and look for it in my computers task manager i can see that the app is running in second plane.

  • @JethiyaaGada
    @JethiyaaGada Před 11 měsíci

    Thankss so much brooo

  • @recepcakir4866
    @recepcakir4866 Před 2 lety

    How to make the page shown in frame full screen?

  • @ajones1274
    @ajones1274 Před 6 lety +2

    every time you click a button it creates a new instance of a page ? Thats not great, what if i hit that button 1000 times, i have a 1000 instances

    • @whatsupbudbud
      @whatsupbudbud Před 5 lety

      Isn't C# automatically disposing of garbage?

    • @grassrootfilms
      @grassrootfilms Před 5 lety +1

      @@whatsupbudbud I was wondering this myself and did a small test and it actually doesn't look like it does. If you keep opening the 2 pages again and again, your ram usage will continue to slightly increase. If you call a main.content=nothing, the page will disappear, but the GC still doesn't fire and the memory usage shows to be the same. Disappointing really.

    • @whatsupbudbud
      @whatsupbudbud Před 5 lety

      @@grassrootfilms Very disappointing, indeed. Thanks for testing!

  • @MooseKapoose
    @MooseKapoose Před 8 lety

    He is our cs teacher

  • @RandomGamesRUS
    @RandomGamesRUS Před 6 lety

    You are Best!!

  • @MrWatchyour6
    @MrWatchyour6 Před 7 lety +1

    I am trying to do something similar but I can't find it to work. I have a button (button1) in page 1 which I want to have me direct to Page2. I tried this in Page1.xaml.cs
    private void button1_Click(object sender, RoutedEventArgs e)
    {
    Main.Content = new Page2();
    }
    I know Main doesn't exist in Page1 but I don't know how I should do it. Any help?

    • @agoldfish9239
      @agoldfish9239 Před 6 lety

      instead of Main.Content do this:
      Page2 p2 = new Page2();
      this.NavigationService.Navigate(p2);

  • @Tjulu1
    @Tjulu1 Před 7 lety

    How do i navigate in one form without opening a new one like this. Is the only solution using XAML or can I do the same thing with only C#? IF thats the case.. How do I do it?

  • @datathree
    @datathree Před 7 lety

    Hey, can I increase the Size of the new Page beacuse it is way to small for my project every time i try to increase it it wouldnt work

  • @FCMTX
    @FCMTX Před 4 měsíci

    W videoo

  • @tomken5919
    @tomken5919 Před 6 lety

    How do you navigate back to the home screen though? Once I navigate the page 1 and 2, I am stuck there. How do I get back to the main window?

  • @lawkaijian618
    @lawkaijian618 Před rokem

    why it showing System.InvalidOperationException: root element is not valid for navigation.' Need Help. Please!!

  • @jakethe3z1kk59
    @jakethe3z1kk59 Před 3 lety

    You just created 6 instances of pages its going to eat up a lot of cpu after a while. You should instead close the previous pages or return to the previous page

  • @nathanng2247
    @nathanng2247 Před 4 lety

    Will the page1 be freed automatically after Navigating to page2?

  • @bigdummyhead2162
    @bigdummyhead2162 Před 4 lety

    Thank You!

  • @ritamgiri5872
    @ritamgiri5872 Před rokem

    How I can navigate from Page to Mainwindow?

  • @Siuulolñ
    @Siuulolñ Před 3 lety

    Can you do the same but instead of Pages using User Controls?

  • @Eh_814
    @Eh_814 Před 4 lety

    What is the difference to usercontrols?

  • @nocopyrightvibes917
    @nocopyrightvibes917 Před 4 lety

    OMG THANK YOU !

  • @yekohein1528
    @yekohein1528 Před 3 lety

    Thank you sir.

  • @sharif3694
    @sharif3694 Před 4 lety

    Jij bent man

  • @pratapgowda498
    @pratapgowda498 Před rokem

    I am getting error Main.Content definition of content not found

  • @rabinsrai5078
    @rabinsrai5078 Před rokem

    how tto add pageload event. as i want to show data on page load