2016-07-31 5 views
1

У меня есть приложение Win Forms, над которым я работаю либо на своем ноутбуке, либо на рабочем столе. (Ничего особенного в отношении программного обеспечения, что я работаю, кажется нерелевантным)VB2015 Редактор текста/отображения текста конструктора

Оба дисплея на рабочем столе и ноутбуке имеют разные варианты масштабирования текста.

На одном компьютере макет проекта (положение текстовых полей, меток и т. Д.) В порядке, НО! Если вы открываете проект на другом, все перемещается, и макет (/ мой графический интерфейс) полностью разрушается. Если вы создадите/сохраните этот проект, все будет потеряно, и все его нужно будет переустановить или переместить в соответствии с компьютером, на котором вы его строите. После того, как проект действительно построен, приложение работает/отлично выглядит. (на любом экране экрана/res/dpi) (EDIT: встроенная версия в порядке, если она была построена с правильной компоновкой)

Похоже, что конструктор VS не справляется с изменением масштаба DPI при работе над формами.

Кто-нибудь знает об этом решении? Я изменил режим масштабирования DPI на нескольких элементах управления/формах, и ничего не работает. Это просто ошибка Visual Studio ???

Спасибо, interwebs.

EDIT: OK Вот твист: если вы откроете проект с помощью масштабирования текста на экране, установите тот же самый, что и компьютер, на котором вы в последний раз сохранили проект, ТОГДА (с открытым VS) измените масштаб текста, элементы управления перемещаются правильно и все выглядит хорошо. (Вещи там, где это должно быть).

ответ

0

Возможно, вы решили эту проблему на данный момент, но ... Вы пытались создать внешний файл манифеста для Visual Studio?

Процесс описан здесь: http://www.danantonielli.com/adobe-app-scaling-on-high-dpi-displays-fix/ Я скопировал файл манифеста фотографии Antonielli точно и, похоже, работает нормально, что не значит, что я его понимаю. Я покажу это ниже, если кто-то со знанием может исправить любые ошибки.

Просто попробовал это сейчас, но, похоже, он работает для меня. Я перехожу к окну из приложения для разработки приложений из ноутбука 1920x1080 к ноутбуку 2560x1440, и мое приложение отлично масштабируется при запуске, но экраны VS2015 не читаются. Итак, то, что вы видите в дизайне, - это беспорядок, а НЕ - то, что вы получаете при запуске приложения.

Мое приложение просто устанавливает AUTOSCALEMODE для INHERIT во всех формах, а затем устанавливает AUTOSCALEMODE в FONT в основной форме. Различные сообщения здесь обсуждают лучшие методы. Я уверен (например, Creating a DPI-Aware Application и How to control the font DPI in .NET WinForms app).

Это файл манифеста фотошоп Antonielli (сначала необходимо изменить реестр на ссылку своего блога), который сохраняется на моем компьютере как «C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.exe .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

Предназначенный, чтобы добавить, что я создал этот файл манифеста и перезапустить VS2015, то я получил WYSIWYG дизайнера (формы выглядят хорошо как в конструкторе и при запуске приложения). –

+0

Это не работает сейчас. Я не был достаточно методичен, чтобы знать, что произошло, когда/почему, но я получаю страшный «Невозможно начать отладку ...» Если я попробую решение, найденное в 37427710 (http://stackoverflow.com/questions/37427710/ visual-studio-2013-high-dpi-work -ound-cause-debugger-to-fail), он терпит неудачу с другим сообщением: «Ошибка при попытке запустить проект: ...» Я буду отчитываться, если/когда я решаю. –

+0

Хорошо, вместо простого скачивания файла в 37427710, я следил за описанным здесь процессом, и это отлично работало. Итак, я взял свой пост выше и добавил соответствующие строки из DebuggerProxy.dll.manifest, как описывает Mark W. Fwiw, мой файл находится по адресу: [link] https://www.dropbox.com/s/d42ynopa560ip3b/devenv.exe.манифеста? дл = 0 –