2015-01-15 4 views
0

Я работаю над проектом, который требует от меня разрешения экрана основного экрана. Я использую C# .NET 3.5 framework в Windows. Для всех ноутбуков я могу получить разрешение, используя эти два вызова:Поверхностное табличное логическое разрешение

string width = Screen.PrimaryScreen.Bounds.Width.ToString(); 
string height = Screen.PrimaryScreen.Bounds.Height.ToString(); 

Однако, это не работает для поверхностей таблеток вообще как вызовы возвращают гораздо меньшее разрешение, чем то, что отображается в настройках дисплея таблеток. Я понимаю, что это связано с тем, что Windows делает особую вещь, связанную с DPI, и масштабируя экран соответственно.

Тем не менее, я не уверен, как программно получить разрешение таблиц Surface точно (что когда-либо параметры отображения сообщают эти показатели).

+0

Имейте в виду, что масштабирование не является специфической для поверхности таблетки. Высокопроизводительные ноутбуки, такие как Lenovo Yoga 2 Pro (и многие другие), по умолчанию также заполняют контент, поэтому это приложение должно обрабатываться. –

+0

Как я буду обращаться с программным обеспечением? Есть ли API, который я могу вызвать и получить соответствующие значения масштабирования? – jayboss

+0

Это зависит от технологии, которую вы используете. Вы можете найти полезную информацию в этом разговоре https://channel9.msdn.com/Events/Build/2014/2-535 –

ответ

2

Итак, я понял проблему. Я должен добавить, чтобы сделать следующее в app.manifest файле:

<asmv3:application> 
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> 
    <dpiAware>True/PM</dpiAware> 
    </asmv3:windowsSettings> 
</asmv3:application> 
Смежные вопросы