2009-08-17 18 views
13

Czy istnieje sposób na hostowanie okna WPF w innym oknie WPF. Mam kilka nieco skomplikowanych formularzy. Ale teraz, aby uprościć rzeczy, próbuję scalić kilka z nich jako zakładki w formularzu "Pulpit nawigacyjny".Masz okno wpf wewnątrz innego okna wpf

Należy pamiętać, że nie staram się obsługiwać Windows Form, ale kolejne okno WPF

Odpowiedz

11

Jeśli chcesz uzyskać zakładki, dlaczego nie używać TabControl z UserControls w środku? Jeśli chcesz przekształcić jedną z tych kart w ruchome okno, po prostu umieść UserControl w nowym oknie ...

+0

Używam już TabControl. Ale zamiast hostować UserControl, chciałbym hostować już istniejące okno. Czy to jest możliwe? –

+0

nie, to nie ... musisz zmienić swoje okno na UserControl –

3

mogę odpowiedzieć na to pytanie innym pytaniem; dlaczego nie stworzysz ich jako kontrolek, a nie innych okien WPF, które chcesz hostować w głównym oknie WPF?

+2

myślę, że to dlatego, że chce aby skorzystać z domyślnego zachowania okna (pasek tytułu, aby go przenieść, przyciski zamknij/min/maks ...) –

+0

Niezupełnie Thomas. Nie zależy mi na żadnej z tych rzeczy. Czy jest możliwe przekonwertowanie istniejącego okna na kontrolę użytkownika? Naprawdę staram się zaoszczędzić czas i wykorzystać istniejące systemy Windows, które już są uruchomione (i zostały przetestowane w produkcji) w nowym oknie głównym. Każde z istniejących okien stanie się po prostu zakładką w tym "głównym" oknie, zamiast być osobnym oknem. –

0

Myślę, że to, o co prosisz, to MDI, Multiple Document Interface. Pomocne może być coś takiego jak this.

Należy jednak zauważyć, że obecnie paradygmat MDI jest w dużej mierze odrzucany. Zwykle istnieją lepsze sposoby na osiągnięcie tej samej funkcjonalności.

+0

Cool ... jednak chrome dla okien potomnych jest dość brzydkie;) –

+0

MDI jest sooo 1995;) – Thorsten79

0

Myślę, że chcesz umieścić zawartość pliku WPF Window1.xaml (page1.xaml) wewnątrz innego okna WPF.

Cóż ... możesz korzystać z Nawigacji. Zamiast uruchamiać zawartość window1.xaml na karcie, możesz pracować z danymi w Nawigacji. Nawigacja może działać w aplikacji okna WPF. Po prostu zaprojektuj swój formularz/interfejs w page1.xaml.

nawzajem..MDI stary i zardzewiały. Chcemy, aby dzisiejsze okno było czyste.

1

trochę późno na to, ale myślę, że z WindowsForms współdziałanie można umieścić w WPF szereg kontroli WinForms w tym przyjmującym umieścić kontrolę WinForm której znajduje się uchwyt okna WPF

+0

> obsługuje uchwyt okna WPF Jakieś opracowanie? – Edza

+0

można tworzyć formanty WinForms z tego, co pamiętam, zawijając uchwyt okna. Ponieważ można uzyskać uchwyt okna okna WPF, można go zawinąć za pomocą formantu WinForms. Następnie, ponieważ WPF może obsługiwać formanty WinForms za pośrednictwem warstwy interopcji (vice-versa jest również dostępne z tego, co pamiętam), można umieścić tę wrapper WinForm w tym oknie WPF w innym oknie WPF –

+0

btw, sprawiłbym, że odziedziczą po UserControl zamiast tego, który jest bardziej uniwersalny (np. może mieć system Windows obsługujący tę funkcję UserControl, a także może mieć inny układ z widokiem z kartami, który hostuje na każdej karcie jedną z tych kontrolek UserControl) –