2012-03-27 8 views
0

Wir müssen MDI-Fenster in einer WPF-Anwendung simulieren.Erstellen einer WPF-MDI-Fensterklasse

Die Kernfunktionalität, die wir benötigen, ist, dass es an seine Eltern fixiert ist, bewegt sich, wenn das Fenster sich bewegt, minimiert mit und so weiter. Wir müssen auch in der Lage sein, ein WPF-Steuerelement als Elternteil und Clip innerhalb seiner Grenzen zu erhalten. Im Wesentlichen ist unsere Anwendung so konzipiert, dass sie im Vollbildmodus ausgeführt werden kann und über Schaltflächen und Schaltflächen für die Anwendung verfügt, die an der Ober- und Unterseite entlang verlaufen, sowie über eine Statusleiste am unteren Rand. Die MDI-Fenster müssen innerhalb des verbleibenden Speicherplatzes liegen und dürfen die Schaltflächenleisten oder die Statusleiste nicht überlappen.

Wir haben ein Projekt für DragCanvas gefunden, das wir verwendet haben und sie haben unser eigenes UserControl erstellt, das wie ein Standardfenster aussah. Wir stellen den gesamten nutzbaren Bereich, den Bereich, der nicht von den Schaltflächenleisten und der Statusleiste belegt ist, als Ziehbereich ein. Dann haben wir unser benutzerdefiniertes Fenster ähnlich wie ein Kind der Zieh-Leinwand hinzugefügt.

Dies gab uns die grundlegende Funktionalität, die wir benötigen, aber es ist extrem langsam zu bewegen und sogar die Eingabe von Daten in den Textfeldern innerhalb des Fensters hat eine große Verzögerung. Wir werden die Anwendung auf einem Laptop installieren, von denen einige älter als 4 Jahre sein können. Ich teste auf einer ziemlich neuen i7-Maschine, und es ist langsam für mich. Vor allem, wenn Sie dem Drag-Canvas mehrere MDI-Fenster hinzufügen.

Was benutzen andere Leute da draußen? Irgendwelche Ideen, warum unsere Implementierung des DragCanvas-Steuerelements in solch einem sich langsam bewegenden Fenster resultieren würde. Manchmal ist der Mauszeiger beim Hin- und Herbewegen mehr als einen Zoll vor dem Fenster.

Antwort