| 

.NET C# Java Javascript Exception

12
Unter Windows kann man die Darstellung von Dialogen und Dialoginhalten per Anzeigeeinstellung zwischen 100, 125 und 150 % variieren (Skalierungsfaktor). Ich arbeite standardmäßig, auch während der Entwicklung mit einer Auflösung von 100%. Dies entspricht 96 DPI (Dots per Inch). Mein Kollege hat jetzt ein Programm mit 125% ausgeführt. Die Umstellung in WinForms-Anwendungen erfolgt bei den Standardsteuerelementen in der Regel korrekt. Anders sieht es bei eigenen von UserControl abgeleiteten Steuerelementen aus. Warum ist das so und wie erreicht man, dass die UserControls die Umstellung automatisch korrekt machen (insbesondere eine korrekte Größenänderung)?
News:
09.10.2013
Klaus L. 353 2 6
Sind deine UserControls komplett selbst implementiert (inklusive zeichnen) oder fasst du nur Standard-Controls zu einem User-Control zusammen?
luedi 10.10.2013
Die Controls sind via GDI+ selbst gezeichnet.
Klaus L. 10.10.2013
1 Antwort
0
Ich kann hier zwar nicht aus Erfahrung sprechen, da ich nicht oft selbst gezeichnete Steuerelemente verwendet habe, aber ein Tipp könnte dir vielleicht hilfreich sein.

protected override void OnPaint(PaintEventArgs e)
{
float dpiX_Prozent = e.Graphics.DpiX / 96.0f;
float dpiY_Prozent = e.Graphics.DpiY / 96.0f;

// dein Code
}


Über das Graphics-Objekt kann man die DPI-Einstellung auslesen.
Wenn man stattdessen die Prozentzahl haben möchte, kann man den Wert durch 96 teilen, da 96 = 100% sind.

Für das eigene Zeichnen könnte man dann diesen Wert zur Skalierung verwenden.

(mit 100% meine ich einen Wert von 1.0)
20.12.2014
Marcus.D 86 1 4

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH