2012-09-12 5 views
5

Mit meinem aktuellen Monitor bevorzuge ich eine DPI-Einstellung von 120 Pixel pro Zoll (welches Fenster als Standard vorschlägt). Nach dem Entwerfen eines Formulars wird es jedoch häufig falsch auf Systemen ausgebreitet, die 120 Pixel pro Zoll nicht verwenden.Muss ich bei Verwendung des WinForms-Designers immer DPI auf 96 setzen?

Ich frage mich, ist es notwendig, dass ich meine Anzeigeeinstellungen auf 96 Pixel pro Zoll einstellen sollte, wenn ich den Designer verwende?

Außerdem gibt es einige Probleme, wenn andere Entwickler verschiedene DPI haben. Sie öffnen ein Formular im Designer und bewegen so etwas wie ein Textbearbeitungs-Steuerelement und stellen fest, dass es sich automatisch auch automatisch ändert. Dann gibt es ein Steuerelement, das eine andere Größe als die anderen hat und wir sind in einem Chaos.

P.S. Ich habe verwandte Beiträge gelesen. Sie sind alle interessant, aber beantworteten meine Frage nicht.

How to control the font DPI in .NET WinForms app

C# WinForms disable DPI scaling

WinForms Different DPI Layouts

DPI not scaling properly

Visual Studio and DPI issue

+0

Überlegen Sie sich auf jeden Fall, wie Sie Layout erhalten, indem Sie die DPI ständig ändern. Dies wird definitiv passieren, nachdem Sie es versenden. Sie würden es nur in Betracht ziehen, wenn Sie es vorziehen, den Kopf in den Sand zu stecken. –

+0

Ich ändere die DPI, um Layouts mit anderen Einstellungen zu testen. Aber ... sollte ich bei der Verwendung des Designers auf einem DPI bleiben? Es sieht so aus, als ob verschiedene DPI-Einstellungen mit dem Designer verwendet werden. Bei jedem Bearbeiten eines Formulars mit einem anderen DPI-Steuerelement werden die Steuerelemente neu angeordnet, sodass sie subtil verschoben werden, was es schwer macht, konsistente Ergebnisse zu erzielen. Eee. vielleicht habe ich meine eigene Frage beantwortet. Ich könnte bei der Verwendung des Designers mit einem DPI bleiben. Ich habe mich nur ein bisschen gefragt, ob alle anderen das schon machen oder eine andere Herangehensweise haben. –

Antwort

1

Ich glaube nicht, Ihre dpi auf einen anderen Wert Einstellung werden Sie dauerhaft helfen. Das Problem ist, dass es Probleme gibt, wenn Sie die dpi ändern, d. H. Das Formularlayout, das Sie haben, ist nicht in der Lage, mit verschiedenen dpi umzugehen.

Ich habe keine absolute Lösung für Sie, außer dass Sie mit verschiedenen dpis testen sollten und sehen, ob es Probleme mit der Formularanzeige erzeugt. Es ist nicht schwierig herauszufinden, was zu Problemen führt, und Sie werden lernen, was Sie relativ schnell vermeiden können.

+1

Ich mache seit einiger Zeit WinForm-Entwicklung, und ich habe noch nicht gelernt, was ich vermeiden sollte. :) –

+0

Was ich sage ist, wenn Sie mit verschiedenen dpi's testen, werden Sie bald in der Lage sein, Ihre Formulare besser mit verschiedenen dpi-Einstellungen zu behandeln. – kristianp

4

Nein. Bei Verwendung des WinForms-Designers muss DPI nicht immer auf 96 gesetzt werden.

Wenn Sie die Eigenschaft AutoScaleMode auf DPI festlegen, schreibt der Designer das aktuelle System Dpi in die Datei designer.cs in der AutoScaleDimensions-Eigenschaft für das Formular. Wenn der Designer auf einem System mit einem anderen DPI verwendet wird, wird diese Information verwendet, um das Formular neu zu skalieren, und der Designer kann mit einem anderen DPI verwendet werden.

Wenn ich andere Skalierungsmodi versuchte, schien dies nicht gut zu funktionieren. "None" bedeutete, dass die Steuerelemente zur Laufzeit nicht skaliert wurden, "Font" schien von Rundungsfehlern zu leiden, und wenn sich die Anzeigeeinstellungen Dpi änderten, konnten sich die Steuergrößen geringfügig ändern und Fehler verursachen.

Ich fand auch, dass für UserControls, die zu Formularen hinzugefügt werden, es am besten ist, ihren AutoScaleMode auf Inherit festzulegen. Wenn Sie Dpi verwenden, werden die Steuerelemente zweimal neu skaliert und am Ende falsch angeordnet.


Ich kam mit den oben genannten Richtlinien nach einigen Stunden des Experimentierens und der Internet-Suche, wo ich die beiden folgenden Artikel gefunden:

http://msdn.microsoft.com/en-us/library/ms229605.aspx

und:

http://kbalertz.com/967578/Child-controls-UserControl-clipped-system-lower.aspx

Verwandte Themen