Autor Beitrag
Määx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 123



BeitragVerfasst: Do 07.11.13 19:02 
Hallo zusammen,

ich habe eine Anwendung, die so ziemlich auf einen 24"-Monitor (1920*1200) optimiert ist. Jetzt möchte ich diese jedoch auch zb auf einem 22"er anzeigen lassen können ohne das gesrollt werden muss. Leider bekomme ich hier keine vernünftige Skalierung hin.
Mein bestes Resultat war bisher:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
if (Screen.PrimaryScreen.WorkingArea.Width != 1920 && Screen.PrimaryScreen.WorkingArea.Height != 1200)
{
    float scaleX = ((float)Screen.PrimaryScreen.WorkingArea.Width / 1920);
    float scaleY = ((float)Screen.PrimaryScreen.WorkingArea.Height / 1200);
    SizeF aSf = new SizeF(scaleX, scaleY);
    this.Scale(aSf);
}

Das funktioniert so auch, jedoch werden diverse Elemente dann verschoben dargestellt und ich orientiere mich immer nur an dem Primärmonitor. Gibt es da eine elegante Art&Weise die Oberfläche zoombar zu gestallten? Ein weiteres Problem ist, dass ich dabei noch dynamisch Elemente auf der GUI platzieren muss. Diese sollten bei der Platzierung die original Koordinaten erhalten und dann entsprechend des aktuellen Zoom-Modus automatisch an die richtige Stelle gesetzt werden.

Habt ihr einen guten Ansatz wie man so etwas am besten gestaltet?

Vielen Dank
Määx
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 07.11.13 19:11 
In Winforms bist du da mehr oder weniger auf dich allein gestellt wenn du es vernünftig willst. Das mit dem skalieren funktioniert erst recht nicht mehr wenn du auch noch Änderungen an der Schriftgröße berücksichtigst (Dreh doch einfach mal die DPI Zahl für Text hoch und schau was passiert). Was unglücklich ist und du auf jedenfall vermeiden solltest ist die Anwendung auf eine große Auflösung zu optimieren und dann runter zu skalieren. Wenn irgendwas auch nur ansatzweise funktionieren kann/soll dann anders herum. Also von der kleinsten unterstützten Anwendung hochskalieren.
Määx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 123



BeitragVerfasst: Fr 08.11.13 14:24 
mh,ok. Nicht das was ich hören wollte, aber vielen Dank für die Infos!
Beim nächsten mal weiss ich bescheid ;)