2009-10-30 9 views
9

Ich arbeite an einem neuen .NET WPF-Projekt und werde höchstwahrscheinlich das PRISM-Framework verwenden.MDI-Anwendungen in WPF

Eine der Anforderungen, die ich für die Anwendung habe, ist eine MDI-Benutzerschnittstelle. Ich brauche eine Haupt-Shell mit Header-, Footer- und Sidebar-Bereichen. Der Hauptarbeitsbereich der Anwendung muss mehrere Registerkarten enthalten, mit einer Registerkarte für jeden "Arbeitsbereich". Diese Registerkarten sollten andockbar sein, so dass sie entweder oder als freistehendes Fenster innerhalb des Hauptanwendungsfensters fixiert werden können.

Meine Fragen sind:

  1. Was ist das beste Werkzeug für diesen Job ist? Ich habe Infragistics angeschaut, die ein DockManager-Steuerelement haben, das so aussieht, als würde es das tun.
  2. Ist diese gute Praxis, mehrere frei schwebende Fenster in Ihrer Anwendung zu haben?
+0

Welche Lösung haben Sie letztendlich gewählt? Haben Sie sich entschieden, MDI zugunsten mehrerer SDI loszuwerden? –

+0

https://github.com/ButchersBoy/Dragablz ist eine andere, neuere Option –

Antwort

10
  1. Es gibt viele Tools von Drittanbietern, die dies tun wird. Infragistics XamDockManager wird, sowie Syncfusion's Docking Manager, und ich bin sicher, es gibt andere da draußen.

  2. MDI-Schnittstellen werden nicht mehr als "gut" angesehen. Sie wurden in den meisten Programmen durch Verwendung mehrerer SDI-Fenster ersetzt. Betrachten Sie beispielsweise Microsoft-Produkte wie die Office-Suite. Sie haben fast vollständig von MDI-Schnittstellen abgelöst. Sogar Visual Studio ist auf Registerkarten gegangen.

+0

Ich stimme mit dem, was Sie in Bezug auf Office sagen, der Punkt, der an mich gemacht wurde (von denen die Anforderungen) ist das in Office etc Sie Sie können dennoch zu einer MDI-Ansicht wechseln, um zwei Dokumente nebeneinander anzuzeigen, wenn Sie dies möchten. Danke für die Eingabe, ich höre, was Sie sagen – Steve

+1

Sehen Sie sich Visual Studio an - es war früher die "perfekte" MDI App, und sie haben jetzt auf Tabbed Dokumentansichten umgeschaltet, mit geteilten Fenstern und Docking Tool Windows (aber nicht schwimmende Fenster intern). –

+2

Aber 2010 ziehen sie zu schwebenden Fenstern um. Auch schwimmende Fenster ohne Schale. –

3

Dies ist sicherlich zu spät für den ursprünglichen Beitrag, aber ich mag Links zu drei populären Projekten auf CodePlex hinzuzufügen, die relevant sind:

  • AvalonDock - eine Docking-Bibliothek im Stil von Visual Studio und
  • WpfMdi das ist ein klassischer MDI-Fenstermanager.
  • Chronos WPF die

pfiffige und modern aussieht klingt Es ist nicht wie der klassische MDI-Stil ist, was gefragt. AvalonDock erlaubt separate Tab-Sets nebeneinander und Abreißfenster wie Visual Studio. Es wird in SharpDevelop verwendet, also könnte man es herunterladen, um eine Vorstellung davon zu bekommen, wie die Docking-Bibliothek verwendet werden kann.

+2

Chronos ist offiziell nicht mehr in Entwicklung. WpfMdi scheint aufgegeben worden zu sein. – user316117

0

Überlegen Sie sich, MDIContainer zu überprüfen. Ein ähnliches Projekt als MDI for WPF, aber es gibt Ihnen mehr Freiheit, da es Sie nicht zwingt, MDIChild-Fenster, Schnittstelle oder irgendetwas zu implementieren.