2016-03-23 2 views

Antwort

1

Es gibt viele Antworten auf diese Frage. Auf den ersten Blick würde ich versuchen, die nächsten Schritte zu folgen:

  1. Erstellen Sie eine Steuerung für die Punkte -> Ein Kreis (Path), die eine Abhängigkeitseigenschaft für seine Farbe hat.
  2. Erstellen Sie eine dynamische Grid mit der Anzahl der Spalten und Zeilen, die Sie möchten, und fügen Sie in jede Zelle das Steuerelement, das Sie im ersten Schritt mit der richtigen Füllfarbe erstellt haben.
  3. Der Zoom sollte durch Anpassen der Anzahl der Spalten und Zeilen in Ihrem dynamischen Raster erreicht werden. Wenn die Anzahl der Spalten reduziert wird, wird das benutzerdefinierte Steuerelement gestreckt und als gezoomte Region angezeigt.
  4. Beachten Sie, dass Sie ObservableCollections und TwoWay-Bindungen verwenden müssen, um die Aktualisierungen auf der Benutzeroberfläche abzurufen.

Hoffe es hilft! Viel Glück

+0

Danke, ich traf meinen Kunden, er sagte, es ist in Ordnung, nur Schemata mit Gitter zu verwenden. Das bedeutet, dass deine Frage sehr hilfreich ist. Danke vielmals! –

1

Sie können ViewBox verwenden, um das Steuerelement auf den verfügbaren Speicherplatz zu skalieren.

@ Dragoshs Antwort ist eine gute Option. Aber es gibt oft Sitzpläne, die kein Raster sind. Ich würde empfehlen, ein benutzerdefiniertes ItemsControl zu erstellen, das an eine Sammlung von "Seats" bindet, die Eigenschaften haben, die ihren Abschnitt, ihre Reihe usw. und ihren Standort beschreiben. Auf diese Weise können Sie eine DataTemplate und einen ItemStyle erstellen, die das Sitzsteuerelement an der richtigen Stelle platzieren.