Ik kan de Hi-DPI-modus in Explorer niet wijzigen: complete handleiding en oplossingen

Laatste update: 02/10/2025
Auteur: Isaac
  • Begrijp en pas de modi van DPI: van systeem naar monitor v2.
  • Pas de systeemschaal aan in stappen van 25% om vervaging te voorkomen.
  • Gebruik schaaloverride en manifesten in apps problemen zoals SSMS.

HiDPI-instellingen in Windows

Als alles wazig lijkt in Windows Nadat u beeldschermen met hoge dichtheid hebt ingeschakeld, vraagt ​​u zich vaak af waarom het tabblad Compatibiliteit niet wordt weergegeven in Verkenner. Schalen met hoge DPI is lastig en Explorer is een speciaal geval.Laten we de zaken dus op orde brengen, zodat je weer helderheid krijgt zonder gek te worden.

In dit artikel wordt alles besproken, van DPI-basisprincipes en herkenningsmodi tot praktische oplossingen voor problematische apps zoals SQL Server Management Studio, plus testtips en veelvoorkomende problemen. Wij integreren de essentie van officiële documentatie en echte ervaringen, met heldere taal en spreektaal, zodat het niet te spannend wordt.

Waarom is Explorer wazig en kan ik de compatibiliteit niet aanpassen?

Bij het openen van de eigenschappen van C:/Windows/explorer.exe Veel gebruikers vinden dat het tabblad Compatibiliteit ontbreekt. Het is geen bug, het is verwacht gedrag.: Explorer is een systeem shell-proces en de compatibiliteit ervan is niet aangepast zoals die van andere reguliere applicaties.

Wanneer u Windows instelt op 125% of hoger, zien apps die geen DPI-herkenning hebben er vaak wazig uit. De verleiding is groot om de aanpassing per toepassing te forceren met Override hoge DPI-schaalbaarheidsgedrag, maar met Explorer gaat dit niet door omdat het dat tabblad niet in het uitvoerbare bestand aanbiedt.

Wat zijn je alternatieven? Begin met Instellingen > Weergave > Schaal en lay-out, waar je de grootte van tekst, apps en andere items kunt aanpassen. Als u Aangepaste schaal gebruikt, vermijd dan vreemde waarden zoals 157%; schaal in stappen van 25% (100, 125, 150, 175) om vervaging te minimaliseren.

Een nuttige opmerking van de technische gemeenschap van Microsoft: De optie Alleen tekstgrootte wijzigen is verwijderd met Windows 10 Creators Update vanwege een gebrek aan brede compatibiliteit met Start, Cortana, Edge en andere onderdelen van het systeem. Nu hangt alles af van schermschaalbaarheid en toegankelijkheidshulpmiddelen.

DPI, schaalfactor en moderne beeldschermen

De overstap naar 4K-monitoren met een hogere dichtheid betekende dat we van de klassieke 96 PPI overgingen naar panelen die rond de 300 PPI zitten of deze zelfs overtreffen. Meer pixels op hetzelfde fysieke oppervlak betekent dat de interface moet worden aangepast zodat het er niet klein of wazig uitziet.

Er zijn veel scenario's waarin de PPP voortdurend verandert: vensters verplaatsen tussen monitoren met verschillende schalen, een laptop koppelen en loskoppelen, Extern bureaublad gebruiken tussen apparaten met verschillende dichtheden of de schaal wijzigen terwijl de app open is. Moderne UWP-apps tekenen zichzelf opnieuw voor de nieuwe PPP; klassieke desktopversies, nee.

Als uw bureaubladtoepassing geen DPI-specifieke functies ondersteunt, schaalt Windows de afbeelding als bitmap naar de verwachte fysieke grootte, wat resulteert in de gevreesde wazigheid. De echte oplossing is dat de app zijn PPP-herkenning aangeeft en beheert..

Modi van DPI-bewustzijn

DPI-herkenningsmodi in Windows

Apps moeten Windows laten weten of ze schaalbaarheid begrijpen. Afhankelijk van de gekozen modus beslist het systeem of bitmaps opnieuw moeten worden geschaald of dat er meldingen moeten worden weergegeven. zodat de app zich kan aanpassen.

Belangrijkste modi die u moet kennen: Onbewust, Systeembewust, Per-monitor en Per-monitor v2 (PMv2)In elk geval is het gedrag bij het wijzigen van DPI anders.

Mode Introducción Hoe de PPP het ziet PPP-wijziging
Niet bewust klassiek Altijd 96 PPP Bitmap-schaal, met vervaging
Systeembewust Windows Vista DPI van primaire monitor bij inloggen Bitmap-schaling buiten die DPI zorgt ervoor dat het er wazig uitziet
Via monitor (V1) Windows 8.1 DPI van de monitor waarop het hoofdvenster zich bevindt Melding aan hoger niveau HWND; geen automatische schaling
Via monitor (V2) Windows 10 1703 DPI van de monitor waarop elk venster zich bevindt Meldingen aan HWND's op het hoogste niveau en aan onderliggende HWND's, met automatische schaling van het niet-clientgebied, dialoogvensters en thematische bitmaps
  Hoe u fout 0xC1900208 – 0x4000C kunt oplossen: incompatibele applicatie en Windows-update crasht

In PMv2, Windows schaalt app-bitmaps niet opnieuw wanneer de PPP verandert, maar stuurt WM_DPICHANGED met een voorgestelde rechthoek. Als de app de grootte en positie van de bedieningselementen niet aanpast, alles zal er te groot of te klein uitzien.

Welke interfacetechnologieën ondersteunen schaalbaarheid goed?

De compatibiliteit varieert sterk. UWP beheert de schaalbaarheid zelf en het is de meest robuuste optie voor nieuwe projecten. In de klassieke desktopwereld zijn er nuances.

Kader Ondersteuningsniveau Wie klimt
UWP Completo Het raamwerk zelf
Win32 + Algemene besturingselementen V6 Berichten naar alle HWND's, bitmaps met thema's en dialoogschalen De applicatie met behulp van het systeem
Windows-formulieren Beperkte monitorondersteuning voor sommige bedieningselementen Het raamwerk, met beperkingen
WPF Native WPF-apps zijn schaalbaar; gemengde hosting mogelijk niet. Het raamwerk is native
GDI / GDI+ / MFC Zonder automatische ondersteuning Toepassing

Praktische conclusie: Als u niet naar UWP kunt migrerenLet op welke onderdelen van het framework u helpen en waar u de code moet aanpassen om te reageren op DPI-wijzigingen.

Hoe je een desktop-app bijwerkt om hem scherp te maken

Het minimale doel is dat de gebruikersinterface reageert op DPI-wijzigingen terwijl de app actief is. Veel apps blijven tegenwoordig systeembewust en daarom zien ze er wazig uit buiten het hoofdscherm of na het veranderen van de schaal.

Belangrijkste richtlijnen voor de migratie naar Per Monitor v2: de modus declareren in het manifestMaak de ontwerplogica herbruikbaar om deze aan te roepen wanneer deze binnenkomt WM_DPICHANGEDen stopt met het cachen van lettergroottes en DPI-waarden, alsof deze onveranderlijk zijn.

U moet ook uw aanroepen naar oude API's via Surgery laten lopen. Vervangt DPI-contextvrije functies door hun equivalenten per monitorbijvoorbeeld door gebruik te maken van GetSystemMetricsForDpi in plaats van GetSystemMetrics, of raadpleeg GetDpiForWindow om posities en afmetingen te schalen met MulDiv.

Een typisch geval met Win32: bij het aanmaken van een besturingselement met CreateWindowVoer geen coördinaten in die zijn gecodeerd op 96 DPI, denkend dat ze voor iedereen geldig zijn. Bereken X, Y, breedte en hoogte op basis van de huidige DPI vanuit het bovenliggende venster en herhaalt de berekening wanneer ontvangen WM_DPICHANGED.

Bovendien heeft rastert bitmaps en pictogrammen opnieuw naar de nieuwe DPI, of ga ervan uit dat het systeem een ​​verlieslatende herschaling uitvoert. En test natuurlijk in omgevingen met meerdere monitoren en verschillende dichtheden.

Gemengde schaal per thread

Het is mogelijk niet haalbaar om de hele gebruikersinterface in één keer bij te werken. Sinds Windows 10 1607, U kunt DPI-herkenning per venster op het hoogste niveau toewijzen, waarbij het hoofdvenster Per monitor blijft staan, terwijl de andere vensters blijven zoals ze waren.

Voor dit doel roept hij een beroep op SetThreadDpiAwarenessContext voordat u het gewenste venster in een andere modus maakt en herstelt de context bij beëindigingHet is praktisch voor gebruikersinterfaces van derden of minder belangrijke secties, hoewel het de complexiteit vergroot.

Essentiële tests na wijzigingen

Controleer of de applicatie goed op alles reageert: vensters verplaatsen tussen monitoren van verschillende schalen, start de app op elk scherm, verander de schaalfactor met de app open, en probeer het opnieuw nadat u de primaire monitor hebt gewijzigd en opnieuw bent ingelogd.

  Wat is Windows Update voor Bedrijven en hoe kunt u de rapporten ervan gebruiken?

Deze testen brengen verborgen rigide maten aan het licht, middelen die niet op tijd worden opgeladen en lay-outfouten die zomaar verschijnen bij het wisselen van 125 naar 175 procent of bij het springen tussen 96 en 200 DPI.

Veelvoorkomende problemen en hoe u ze kunt vermijden

Een klassieker: negeer de voorgestelde rechthoek van WM_DPICHANGED. Gebruik dit om de nieuwe venstergrootte in te stellen en voorkom dat de aanwijzer van relatieve positie springt of in een DPI-veranderingslus terechtkomt. Als u een andere maat nodig heeft, overleg dan met WM_GETDPISCALEDSIZE.

Nog een hoofdpijndossier: virtualisatie. Wanneer een app of thread niet DPI-bewust isWindows converteert formaten en coördinaten naar een virtuele ruimte van 96 dpi. Uitgebreide documentatie is niet altijd beschikbaar, dus zorg ervoor dat elke gevoelige aanroep in de juiste dpi-context wordt uitgevoerd.

Let op API's zonder DPI-context. Oude functies zoals LoadIcon Ze kunnen je middelen geven die niet overeenkomen; je kunt je toevlucht nemen tot LoadImage of vectorbronnen met verschillende resoluties. Vergeet niet om bitmaps opnieuw te laden wanneer de DPI toeneemt of afneemt.

Zorg er ten slotte voor dat de DPI-waarden in de gehele vensterstructuur consistent zijn. Het mengen van verschillende modi binnen dezelfde hiërarchie is niet toegestaan.; Als u dit doet, kan Windows afdwingen dat het proces wordt herkend, een foutmelding geven of het onderliggende proces overnemen, afhankelijk van de versie en de bewerking.

SSMS op 4K-schermen: extern manifest en andere snelkoppelingen

SQL Server Management Studio verbeterd met de tijd, maar met HiDPI zat het lange tijd halverwege. Er zijn twee bekende routes om scherpte te verkrijgen: Forceer een extern manifest en gebruik schaaloverride in compatibiliteit.

Optie voor extern manifest voor SSMS 16.x en 17.x: schakel eerst het uitvoerbare bestand in om te zoeken naar externe manifesten door de sleutel te maken HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide met de DWORD-waarde PreferExternalManifest = 1. U hebt beheerdersrechten nodig om het register aan te raken en het is raadzaam om dit met de nodige voorzichtigheid te doen.

Maak vervolgens het bestand aan ssms.exe.manifest in de overeenkomstige SSMS-installatiemap, opgeslagen in UTF‑8. Het manifest zal het DPI-bewustzijn uitdragen en zorgt ervoor dat de Visual Studio-shell scherp in 4K kan renderen. Start na het kopiëren uw systeem opnieuw op om de wijzigingen toe te passen.

Als u te lui bent om het register te bewerken of de voorkeur geeft aan iets dat omkeerbaar is, Gebruik het tabblad Compatibiliteit Via de SSMS-snelkoppeling schakelt u 'Override High DPI Scaling Behavior' in, waarbij schaling door de applicatie wordt uitgevoerd. Dit optimaliseert 4K-cases aanzienlijk zonder dat dit gevolgen heeft voor manifesten.

Wil je de realtimemodus van een app controleren? Open Sysinternals Process Explorer en voeg de kolom DPI-bewustzijn toe. U ziet labels zoals Onbekend, Systeembewust of via monitor. Als u het SSMS-manifest verwijdert, wordt het gewijzigd in Onbekend; met het manifest wordt het gewijzigd in Systeembewust. Moderne Visual Studio wordt meestal goed voorbereid geleverd.

Beperkingen om rekening mee te houden: SSMS 2012 en 2014 neem geen initiële bèta-ondersteuning op, dus de manifesttruc is niet overal toepasbaar. In deze gevallen kan het visuele resultaat lijken op dat van een onbewuste app.

Goede aanbevelingen: past de schaal aan op canonieke waarden van 25%Vermijd onregelmatige aangepaste schalen en onthoud dat elk team zich anders kan gedragen, afhankelijk van GPU, drivers en monitorcombinatieAls u artefacten ziet, probeer dan uit te loggen na het schalen.

Wat moet ik doen als ik de Hi-DPI-modus van Explorer niet kan wijzigen?

Samenvattend: Explorer heeft geen tabblad Compatibiliteit en dit is niet de juiste plek om schalen af ​​te dwingen. Je speelveld bevindt zich in Instellingen > Weergave en in de compatibiliteit van toepassingen in uitvoerbare bestanden die dit wel toestaan.

Praktische en realistische stappen: pas de systeemschaal aan op 100, 125, 150 of 175 procent, Vermijd aangepaste schaal met vreemde waarden omdat het vervaging veroorzaakt; DPI-override in wazige apps mogelijk maakt en, voor specifieke tools zoals SSMS, het externe manifest toepast indien van toepassing.

  Hoe u Windows Defender Firewall kunt gebruiken om uw IoT-netwerk te beschermen

Als u de oude optie Alleen tekstgrootte wijzigen gebruikte, onthoud dan dat Het bestaat niet meer sinds Windows 10 1703Ontdek de toegankelijkheidsfuncties en opties voor systeemgrootte die door alle Windows-besturingssystemen worden ondersteund.

Chrome DevTools Device Mode om mobiele apparaten te simuleren

Hoewel het geen Windows-oplossing is, ontwikkelen veel teams webinterfaces en moeten ze dichtheden en breekpunten valideren. DevTools Device Mode simuleert mobiele apparaten vanaf uw bureaublad om te zien hoe een pagina zich gedraagt ​​bij verschillende breedtes en DPR.

Houd er rekening mee dat het een redelijke benadering is, maar de code wordt niet op een echte mobiele CPU uitgevoerdDe architectuur en bepaalde sensoren zijn niet 100% reproduceerbaar, dus test bij twijfel op hardware echt met remote debugging.

Om de apparaatwerkbalk te openen, gaat u naar DevTools en klikt u op de knop Apparaatwerkbalk in-/uitschakelen. Standaard wordt een responsieve viewport geopend die u kunt verslepen of configureren met specifieke waarden voor de breedte en hoogte.

Selecteer in de vervolgkeuzelijst 'Afmetingen' voorinstellingen zoals Mobile S, Mobile M, Tablet of Laptop en 4K. U kunt media query-breekpunten zichtbaar maken en spring ertussen om de stijlen te bekijken @media die geactiveerd zijn.

Het is mogelijk om de DPR-lijst toe te voegen en de pixelverhouding van het apparaat te selecteren om HiDPI-schermen te emuleren. U kunt ook het apparaattype wijzigen tussen mobiel of desktop, draai het venster, activeer de dual-screen-modus of stel de houding in opvouwbaar.

Voor een visuele getrouwheid kunt u het apparaatframe weergeven als de voorinstelling dit ondersteunt. Als u het kader niet ziet, er is geen grafiek beschikbaar voor dat specifieke profiel.

Ontbrekende apparaten? Bewerk de lijst en voeg een aangepaste telefoon toe met naam, breedte en hoogte. De velden DPR, gebruikersagent en type zijn optioneel., en het losse lettertype is de standaard. Vervolgens selecteert u het in Afmetingen.

Handige hulpmiddelen tijdens het ontwerpen: linialen in het venster, instelbare zoom en screenshots van het uitzicht of de hele pagina. Als u de prestaties wilt meten, schakelt u netwerk- en CPU-beperking in voor mobiele profielen in het middensegment of in het lagere segment.

Beperk voor specifieke tests alleen de CPU via het paneel Prestaties of alleen het netwerk via het paneel Netwerk, zelfs via snelkoppelingen in het menu. commando's om snel of langzaam 3G in te schakelen. Sensoren kunnen worden nagebootst vanuit het Sensoren-paneel voor geolocatie, oriëntatie, force touch of de inactieve status.

Dit alles vervangt geen echte telefoon, maar Bespaar tijd bij het valideren van breekpunten, DPR's en aanraakgebeurtenissen voordat we overgaan tot de testfase op fysieke apparaten.

Met een combinatie van de juiste Windows-schaalbaarheid, DPI-ready apps per monitor en validatiehulpmiddelen, je krijgt een heldere en consistente ervaring Zowel op de desktop als op het web. Wanneer de Verkenner geen compatibiliteitsopties toestaat, concentreer u dan op systeemschaalbaarheid en instellingen per app waar beschikbaar, en vertrouw waar nodig op manifesten en schaaloverrides.

Oplossing voor zwart scherm met Windows-cursor
Gerelateerd artikel:
Zwart scherm met cursor in Windows: bewezen oplossingen