2017-03-17 2 views
0

Ich habe eine Frage bezüglich der Formzeichnung in UWP. Sie erstellen z. a Rectangle in UWP und fügen Sie es auf einer Leinwand auf dem Bildschirm. Nehmen wir an, wir haben ein Rechteck mit einer kleinen Größe von 10x5. Sie fügen es der Zeichenfläche hinzu und es wird auf dem Bildschirm korrekt angezeigt. Dann zoomen Sie mit Standard-Bildschirmtransformationen (Composite-Transformationen), aber Sie ändern nicht die Größe des Rechtecks ​​(nur die Skala):Was ist die minimale Teilung der Zeichnung in UWP?

Ok, jetzt haben wir ein Rechteck mit einer Größe von 10x5 und a großer Zoom (ca. 50-150). Die Breite und Höhe des Rechtecks ​​akzeptiert die Werte double. Nehmen wir an, ich ändere die Größe des Rechtecks ​​auf 10,1x5, aber die Größe des Rechtecks ​​ändert sich nicht proportional.

Hier ist ein aufgezeichnetes gif: Die Startbreite des Rechtecks ​​beträgt etwa 11,704 und ich ändere die Breite von der rechten Seite (mit meiner Maus, die nicht auf dem Video sichtbar ist), so dass am Ende hat Breite von etwa 4, aber im Allgemeinen sollte das Rechteck seine Größe linear ändern. Ich habe es im Debugger angeschaut und der Wert, der berechnet wird, ändert sich wirklich (11.704 -> 11.389 -> 10.898 -> ...), aber es ändert nicht die Breite in der Zeichnung.

Zuerst sah es aus wie UWP Formen würde die Breite des Elements auf ein int gegossen, aber wenn ich es in dem Debugger, einen Blick hatte es eher wie ein Näherungswert (wenn die Breite < 0,6 die Form wasn war‘ t überhaupt sichtbar, wenn> 0,6 plötzlich angezeigt wurde, aber eine Breite von etwa 1,2 hatte). Also meine Annahme wäre, dass die minimale Teilung beim Zeichnen von Formen in UWP minimal 1,2 ist.

Das Ändern der Skala ohne die Größe ist eine andere Option, aber ich bin neugierig, was hinter Zeichnung in UWP ist. Wenn es wichtig ist, habe ich es auf einer Bildschirmauflösung von 1920x1080 getestet.

+0

Erstens, was ist der relative Code über Ihre "Composite-Transformationen" hier, wie Sie die Skala ändern? Maßstab X oder Y oder beides? Zweitens, "aber es ändert nicht die Breite auf der Zeichnung." was bedeutet das? Bitte geben Sie einen relativen Code an. –

Antwort

1

Es kann zu Layoutrundungsproblemen kommen. Der Canvas mit dem Rechteck, Layout-Abrundung wie folgt ausschalten:

<Canvas UseLayoutRounding="False"> 
    <Rectangle/> 
</Canvas> 
+0

Vielen Dank, das hat mein Problem gelöst! – losik123

Verwandte Themen