Laden...

Nach Aufruf von System.Media.Media3D ändert sich die Skalierung

Erstellt von Sindelfinger vor 2 Jahren Letzter Beitrag vor 2 Jahren 277 Views
S
Sindelfinger Themenstarter:in
39 Beiträge seit 2019
vor 2 Jahren
Nach Aufruf von System.Media.Media3D ändert sich die Skalierung

Guten Morgen liebe Freunde,

mir ist da ein recht befremdliches Verhalten untergekommen: Ich erstelle ein kleines Tool zur Transformation von kartesischen Koordinaten unter Zuhilfenahme der Presentation Core.

Sobald ich folgendes Modul anspringe:


public RobFrame Tool_Trans(RobFrame pos, RobFrame oritool, RobFrame newtool)
        // Tool_Trans transformiert eine übergebene Position pos von dem Frame
        // oritool zum Frame newtool
        {
            Matrix3D m1 = new Matrix3D();
            RobFrame tempframe = new RobFrame();

            m1 = Frame2Matrix(oritool);
            m1.Invert();

            tempframe = Matrix2Frame(m1);
            tempframe = geometrischer_Operator(pos, tempframe);
            tempframe = geometrischer_Operator(tempframe, newtool);
            return tempframe;
        }

ändert sich die Skalierung des Programmfensters. Das hat dann auf meinem 4K - Display am 17'' Laptop die Auswirkung, dass nur ein Adler noch erkennen könnte, was da steht. Das komische an der ganzen Geschichte ist die Tatsache, dass im Debugger - Modus dieses Phänomen bereits auftritt, wenn der Programmzeiger auf dem "{" steht.

Gibt's da Unverträglichkeiten zu bestimmten Grafikkarten oder ist das schön öfter aufgetreten?

Ich danke Euch schonmal im Voraus.

2 stupid 4 chess? No way.
2 stupid 4 C#? It seems so X(

16.827 Beiträge seit 2008
vor 2 Jahren

Du hast im WinForms Forum gepostet, sprichst aber von der Presentation Core, die zu WPF gehört.
Absicht?

4K fällt unter die High DPI Kategorie, die in WinForms nur über Schalter (und auch nicht nativ) unterstützt wird.
Unterstützung hoher DPI-Werte - Windows Forms .NET Framework

Man kann da nich erwarten, dass eine >25 Jahre alte Grund-Technologie alles unterstützen wird; gerade bei sowas wird man mal eine Migration ins Auge fassen müssen....

ändert sich die Skalierung des Programmfensters.

Kann an .NET liegen; muss nicht.
Kann auch an den Windows Grafiksettings liegen, gerade wenn man unterschiedliche Monitore hat.
Windows skaliert / reagiert komisch, wenn man zB Fenster von einer 125% Bildskalierung auf Monitore mit einer 100% Skalierung verschiebt...
Will man hier ein flüssiges Verhalten, müssen alle Monitore mit der gleichen Skalierung laufen.

Und 4K auf 17 Zoll.... auch eher auf das Marketing reingefallen, wenn ich das so sagen darf 🙂

S
Sindelfinger Themenstarter:in
39 Beiträge seit 2019
vor 2 Jahren

Hey Abt!

Da fallen mir jetzt erstmal alle meine Sünden ein. Dir schulde ich ja noch einen Kaffee (Käsekuchen wolltest Du ja nicht dazu). Erstmal herzlichen Dank für die schnelle Antwort.

Ich benutze die Presentation Core nur zur Berechnung - nie zur Darstellung. Reine Faulheit, weil ja Matrix3D dort zur Verfügung gestellt wird und diverse Berechnungsschritte. Die Darstellung sollte eigentlich nie beeinflusst werden.

Dein Einwurf, dass es an den Grafiksettings liegen könnte, ist für mich auch die plausibelste Erklärung, da das Phänomen auf einem anderen Laptop nicht auftritt.

Da mir in den Anzeigeeinstellungen eine Auflösung von 3840 x 2160 empfohlen wird, dachte ich mir eigentlich hier seien 4K verbaut. Beworben wurde er damals aber mit Full HD. Es handelt sich hier um einen Lenovo P70 - 20ER003PGE.

2 stupid 4 chess? No way.
2 stupid 4 C#? It seems so X(

16.827 Beiträge seit 2008
vor 2 Jahren

Ja, laut Google ist das ein 4K UHD Display.
Und weil 4K halt für normale Büroaufgaben total unnütz ist, skalieren alle Betriebssysteme entsprechend - damit man kein Adler sein muss.
Selbst mein XPS 13 skaliert auf 125% mit 1440p Display.

Mit diesem komischen Windows-Verhalten wenn Du Fenster verschiebst musst aktuell leben.
Mit Windows 11 _soll _das ja besser werden.

(Käsekuchen wolltest Du ja nicht dazu).

Esse nichts mit Zucker oder anderes süßes Zeug, danke 🙂

S
Sindelfinger Themenstarter:in
39 Beiträge seit 2019
vor 2 Jahren

Hey Abt,

das passiert ja nicht wenn ich das Fenster verschiebe, sondern genau zu dem Zeitpunkt, wenn der Programmzeiger in das Modul der Transformation heineinspringt, BEVOR irgendwelche Befehle ausgeführt werden. Das ist schon ein bisschen fremdartig.

Ich programmiere diese Transformationen jetzt "zu Fuß". Ich halte Dich auf dem Laufenden, wie sich das ganze dann verhält.

Zucker braucht's nicht, wenn man selber süß genug ist 😜

2 stupid 4 chess? No way.
2 stupid 4 C#? It seems so X(