Наконец-то я нашел решение этой проблемы: вместо того, чтобы пытаться информировать DPI моего приложения из кода, вызывая соответствующие методы из системной DLL, мне пришлось добавить app.manifest
файл в WPF
проект. Когда я пытался таким образом, проблема, связанная с неверным размером экрана, исчезла.
Здесь - пример того, что должно содержать этот файл манифеста. Очень важно то, что Магазин не принял настройку PerMonitor
, как в примере выше. Его нужно изменить на PerMonitorV2
(кстати, об этом они и просили в сообщении об ошибке).
Добавив эти настройки в проект, он прошел сертификацию на магазин. И, что удивительно, да, именно это предупреждение стало причиной неудачной сертификации.
Еще одна вещь, после добавления файла манифеста, она должна быть подключена к проекту. Вы можете сделать это, добавив следующий код в файл <your_project_name>.csproj
(пример здесь ):
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
Чтобы увидеть всю картинку, я также добавил второй шаг из этот ответ.
Наслаждайтесь!