Kyle Opublikowano 8 Sierpnia 2014 Zgłoś Opublikowano 8 Sierpnia 2014 (edytowane) Witajcie Mam program stronicowy (kolejne karty programu to "Page"). Otwarcie z jednej karty kolejnej jest bezproblemowe ... po prostu w StronaGlowna.xaml.cs wpisujemy: private void btnOtworzStrone_Click(object sender, RoutedEventArgs e) { Strona Strona_Page = new Strona(); this.NavigationService.Navigate(Strona_Page); } ... i otwiera nam się karta "Strona", po wciśnięciu odpowiedniego przycisku. Teraz otwarcie okna ("Window") ze strony, też jest łatwe, proste i przyjemne, po prostu w Strona.xaml.cs wpisujemy: private void btnOkiennica_OkiennicaMoja_Click(object sender, RoutedEventArgs e) { Okiennica okno = new Okiennica(); okno.Show(); } I wyskakuje nam, po wciśnięciu przycisku nasze okienko z zawartością (w tle wyświetla się przez cały czas Strona, z której otwarliśmy okno). Teraz problem polega na tym, jak otworzyć/odświeżyć "Strona" która jest przez cały czas otwarta w tle (lub przejść do innej strony w tym tle) z poziomu naszego małego "Window", które się otworzyło. ... mam nadzieję, że nie namieszałem przesadnie ;) Przykład zastosowania praktycznego: W programie stronicowym, na jednej ze stron jest przycisk "Wyszukaj", po jego naciśnięciu, wyskakuje okienko gdzie wpisujemy nazwę do wyszukania z przyciskiem "Rozpocznij szukanie" ... po wciśnięciu którego, zamyka się to okienko, a pokazuje się strona z wynikami. Edytowane 8 Sierpnia 2014 przez Kyle Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Małpożer Opublikowano 12 Sierpnia 2014 Zgłoś Opublikowano 12 Sierpnia 2014 Wyslij przez referencje aktualna karte do wyskakujacego okna i zmien ten obiekt z poziomu okna. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Kyle Opublikowano 13 Sierpnia 2014 Zgłoś Opublikowano 13 Sierpnia 2014 (edytowane) Czy po zakończeniu całej operacji, nie zostanę z zawartością <Page> na poziomie <Window> które wyskoczyło? (a tego bym nie chciał, na końcu ma zostać poziom <Page>) ... a może źle się do tego zabieram i nie powinienem robić programu opartego na <Page> ? (w sumie mogę to przerobić na inny typ, bo wiele roboty z tym nie ma). Przyciski nawigacyjne nie są potrzebne (już je ukryłem przez ShowsNavigationUI="False" ), tylko chodziło mi o prostą realizację zmieniającej się zawartości okna głównego programu. Jak Wy realizujecie tego typu programy? Przez <Page>? Czy może jedynie zmieniacie zawartość w MainWindow? ... hmmm ... w sumie, przez this.Content = możnaby ładować nowy zestaw kontrolek do okna. Idę się napić herbatki ... bo ten Page to chyba nie jest optymalne rozwiązanie (?). Edytowane 13 Sierpnia 2014 przez Kyle Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Małpożer Opublikowano 26 Sierpnia 2014 Zgłoś Opublikowano 26 Sierpnia 2014 Zmien wywolanie okna na: private void btnOkiennica_OkiennicaMoja_Click(object sender, RoutedEventArgs e) { Okiennica okno = new Okiennica(ref_do_strony_wywolujacej); okno.Show(); } W okiennicy zmien: class Okiennica{ // ... Strona strona_wywolujaca; Okiennica(strona a){ //.... strona_wywolujaca = a; } // ... function zwroc_wynik() { strona_wywolujaca.twoja_funkcja_do_wyswietlania_strony = twoj_wynik_wyszukiwania; } } C# znam w malym stopniu, ale poczytaj o referencjach (przezwiskach obiektow). Przesylasz ref (tutaj do strony wywolujacej okno) do wyskakujacego okna (czyli twoja okiennica) i dzieki temu pracujesz na obiekcie, ktory wywolal to okno :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...