2016-07-31 24 views
1

Ich habe eine Win Forms-Anwendung, in der ich entweder auf meinem Laptop oder Desktop arbeite. (Nichts besonderes über die Software, woran ich arbeite scheint irrelevent)VB2015 Designer Text/Anzeige Skalierung

Beide Anzeigen auf dem Desktop und Laptop haben verschiedene Text-Skalierungsoptionen.

Auf einem Computer ist das Projekt Layout (Position der Textfelder, Etiketten usw.) in Ordnung, ABER! Wenn du das Projekt auf der anderen Seite öffnest, bewegt sich alles und das Layout (/ meine GUI) wird komplett zerstört. Wenn Sie dieses Projekt erstellen/speichern, dann ist alles verloren und alles muss zurückgesetzt/verschoben werden, um dem Computer, auf dem Sie es aufbauen, zu entsprechen. Sobald das Projekt tatsächlich erstellt wurde, läuft die Anwendung/sieht gut aus. (auf jedem Bildschirm/res/dpi Maßstab) (BEARBEITEN: Die gebaute Version ist in Ordnung, wenn es mit dem Layout korrekt gebaut wurde)

Es scheint, dass VS Designer kann nicht die DPI-Skala ändern, wenn Sie an den Formularen arbeiten.

Kennt jemand eine Lösung dafür? Ich habe den DPI-Skalierungsmodus für mehrere Steuerelemente/Formulare geändert und nichts scheint zu funktionieren. Es ist nur ein Visual Studio Bug ???

Dank Interwebs.

BEARBEITEN: OK Hier ist eine Wendung: Wenn Sie das Projekt mit Ihrem Bildschirm Text Skalierung die gleiche wie der Computer, Sie zuletzt gespeichert das Projekt, DANN (mit VS öffnen) ändern Sie die Text-Skalierung, die Steuerelemente bewegen sich korrekt und alles sieht gut aus. (Sachen ist, wo es sein sollte) ......

Antwort

0

Sie haben dieses Problem inzwischen gelöst, aber ... Haben Sie versucht, eine externe Manifest-Datei für Visual Studio zu erstellen?

Prozess ist hier beschrieben: http://www.danantonielli.com/adobe-app-scaling-on-high-dpi-displays-fix/ Ich kopierte Antoniellis Photoshop Manifest-Datei genau und es scheint gut zu funktionieren, was nicht bedeutet, dass ich es verstehe. Ich werde es unten zeigen, falls jemand mit Wissen Fehler korrigieren kann.

Ich habe es gerade versucht, aber es scheint für mich zu funktionieren. Ich verschiebe Windows Form App Dev von einem 1920 x 1080 Laptop zu einem 2560 x 1440 Laptop und meine App skaliert gut, wenn es läuft, aber VS2015 Bildschirme sind nicht lesbar. Also, was Sie im Design sehen, ist ein Durcheinander und NICHT, was Sie bekommen, wenn Sie die App ausführen.

Meine App setzt einfach AUTOSCALEMODE auf allen Formen auf INHERIT und setzt dann AUTOSCALEMODE auf FONT auf Hauptformular. Verschiedene Beiträge hier diskutieren bessere Methoden, die ich sicher bin (z. B. Creating a DPI-Aware Application und How to control the font DPI in .NET WinForms app).

Hier ist Antoniellis Photoshop-Manifest-Datei (muss Registry zuerst über seinen Blog-Link oben ändern), die auf meinem Computer als "C: \ Programme (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.exe gespeichert ist manifest ":

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> 

<dependency> 
    <dependentAssembly> 
    <assemblyIdentity 
     type="win32" 
     name="Microsoft.Windows.Common-Controls" 
     version="6.0.0.0" processorArchitecture="*" 
     publicKeyToken="6595b64144ccf1df" 
     language="*"> 
    </assemblyIdentity> 
    </dependentAssembly> 
</dependency> 

<dependency> 
    <dependentAssembly> 
    <assemblyIdentity 
     type="win32" 
     name="Microsoft.VC90.CRT" 
     version="9.0.21022.8" 
     processorArchitecture="amd64" 
     publicKeyToken="1fc8b3b9a1e18e3b"> 
    </assemblyIdentity> 
    </dependentAssembly> 
</dependency> 

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
    <requestedPrivileges> 
     <requestedExecutionLevel 
     level="asInvoker" 
     uiAccess="false"/> 
    </requestedPrivileges> 
    </security> 
</trustInfo> 

<asmv3:application> 
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> 
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware> 
    </asmv3:windowsSettings> 
</asmv3:application> 

</assembly> 
+0

hinzufügen, dass Meant nachdem ich diese Manifest-Datei erstellt und neu gestartet VS2015, dann bekam ich WYSIWYG in Designer (Formen sehen gut sowohl Designer und wenn die App ausgeführt wird). –

+0

Dies funktioniert jetzt nicht. Ich war nicht ausreichend methodisch, um zu wissen, was wann/warum passiert ist, aber ich bekomme das gefürchtete "Unfähig, mit dem Debuggen zu beginnen ..." Wenn ich die in 37427710 gefundene Lösung versuche (http://stackoverflow.com/questions/37427710/) Visual-Studio-2013-high-dpi-Workaround-Ursachen-Debugger-zu-Fehler, scheitert es mit einer anderen Nachricht: "Fehler beim Versuch, Projekt auszuführen: ..." Ich werde zurück melden, wenn/wenn ich lösen. –

+0

Ok, anstatt einfach die Datei in 37427710 herunterzuladen, folgte ich dem dort beschriebenen Prozess, und das funktionierte gut. Also habe ich meinen Beitrag oben genommen und die relevanten Zeilen aus DebuggerProxy.dll.manifest hinzugefügt, wie Mark W beschreibt. Fwiw, meine Datei befindet sich unter: [link] https://www.dropbox.com/s/d42ynopa560ip3b/devenv.exe.manifestieren? dl = 0 –