Frage
Ich brauche eine Canvas
zu implementieren, die seinen Inhalt entsprechend seiner Größe skaliert. Ich weiß, es ist Viewbox
, die alles in der es skaliert. Allerdings kann ich nicht, dass verwenden, da einige Elemente eine feste Größe haben und nicht skaliert werden kann.
Auch, wie kann ich die Größe des Canvas
an das Mutterelement binden (zum Beispiel ein veränderbares Fenster). Es gibt SizeToContent für Fenster, möchte ich die Größe passend genau umgekehrt. Auch die Leinwand eine Zeichnung auf der Grundlage der Größe des Hosting-Elements verwendet, wie wird neu zeichnen ausgelöst und wie kann ich sicherstellen, dass es nur zieht, wenn es eine gültige (oder min) Größe bekommt?
Lösung
Wenn Sie keine Breite oder Höhe auf die Leinwand angeben nutzt automatisch alle verfügbaren Platz. Dies ist, weil der Standard VerticalAlignment
und HorizontalAlignment
werden auf Stretch
.
Was meinst du mit Leinwand, die seinen Inhalt nach seiner Größe skaliert, ohne den gesamten Inhalt Skalierung als einige feste Größe haben?
Update nach Kommentaren
Wenn Sie Ihre Zeichnung Algorithmus bereits den Inhalt auf die Leinwand Höhe und Breite skaliert dann alles, was Sie tun müssen, ist die Leinwand, um die Größe der Fläche zu passen glaube ich? In diesem Fall entfernen Sie fest einprogrammierte Höhe / Breite-Werte und die Leinwand wird die Größe des Behälters passen.
Sie müssen möglicherweise Actual / Actual statt Höhe / Breite in der Zeichnung Algorithmus nach dieser allerdings verwenden. Actual / Actual die Werte zurück, die das Layout Container Ihrer Leinwand geben, so dass diese die Werte repräsentieren die Leinwand mit gezeichnet.