Reputation: 11
Is it possible some how, to change the DPI scaling setting in kiosk-mode Windows 10 LTSC ?
In the kiosk-mode windows 10,the UWP application is set up to 150%, so UI controls are really large.
Upvotes: 0
Views: 2356
Reputation: 1
To control the display scale for the a Windows 10 or 11 Kiosk user, you must configure registry keys. It can also be done with group policy, but that is beyond this scope. This requires you to have already created the Kiosk user. This is confirmed to work in Windows 11 (23H2). It cannot be done using the Windows settings->display menu at this time. The steps are:
Open the Windows Registry Editor as an administrator regedit.exe
This can be done with by loggining in with any account that has administrator access.
Further Documentation
Identify the Kiosk User ID for that machine
This will identify the value for {Kiosk Account ID}. The registry
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
contains a list of users on the machine. Each folder is a user account. Within each folder is a registry entry for "ProfileImagePath". That path contains the account name. Look for one that says something like "C:\Users\Kiosk" or whatever name you gave the kiosk account. The folder name above this key is the {Kiosk Account ID} that you will use in steps 3 & 4. Further Documentation
Enable the custom display scale by creating or modifying this registry entry
- Name: {Kiosk Account ID}\Control Panel\Desktop\Win8DpiScaling
- Type: REG_DWORD
- Data: 0x00000001 (1)
- Value Data: 1
- Base: Hexadecimal
- Name: {Kiosk Account ID}\Control Panel\Desktop\LogPixels
- Type: REG_DWORD
- Data: 0x00000060 (96)
- Value Data: 60
- Base: Hexadecimal
Further documentation including other values.
Upvotes: 0
Reputation: 8681
I have to say that in UWP apps, it is not possible to change the scale size of the system. My suggestion is that you might need to scale the controls in your app based on the system scale value to make your app looks better.
You could use the following code to get the current scale size:
DisplayInformation information = DisplayInformation.GetForCurrentView();
var factor = information.ResolutionScale;
Then you could apply a transform for the controls in your app to make them look better. For example using the ScaleTransform
Upvotes: 1