В Windows 10 некоторые FormBorderStyles не имеют границ

Это проблема только в том случае, если у вас отключены тени в настройках внешнего вида.

Я заметил, что окна некоторых форм наших приложений не имеют границ. В частности, у них отсутствует граница толщиной 1 пиксель для левой, правой и нижней частей окна формы. У всех форм было общее то, что они использовали FormBorderStyle FixedToolWindow или SizableToolWindow. Когда это так, трудно различить, где заканчивается один диалог и начинается другой.

Мы считаем вероятным, что некоторые из наших пользователей будут иметь свои компьютеры, настроенные таким образом, без возможности их изменить.

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


person Per Hyyrynen    schedule 03.10.2016    source источник
comment
У меня есть границы, Win10, свежий проект WinForms, как для FixedToolWindow, так и для SizableToolWindow.   -  person C.Evenhuis    schedule 03.10.2016
comment
это интересно. Я собираюсь протестировать на другой машине и проверить!   -  person Per Hyyrynen    schedule 03.10.2016
comment
Наша тестовая машина с Windows 10 представляет собой новую установку Windows 10, на которой установлены только все критические обновления. Я вернусь позже, когда у меня будет возможность попробовать это на своем домашнем компьютере.   -  person Per Hyyrynen    schedule 03.10.2016
comment
Вы изменили настройки внешнего вида, например, для лучшей производительности?   -  person Cee McSharpface    schedule 03.10.2016
comment
@dlatikay Я попытался изменить его, позволив компьютеру решить настроить для лучшего вида. Или что-то в этом роде, установка на шведском языке =/. У меня есть тень, но мне все еще не хватает левой, правой и нижней границы.   -  person Per Hyyrynen    schedule 03.10.2016
comment
не мог воспроизвести. разрешение экрана/dpi/масштабирование также не имеют значения. предполагая .NET 4.0+. вы компилируете с более старой версией .NET framework? любые другие нестандартные свойства формы, такие как прозрачность / масштабирование / пользовательский код рисования неклиентской области?   -  person Cee McSharpface    schedule 03.10.2016
comment
@dlatikay Я попытался скомпилировать свое простое приложение, ориентированное как на .net 2.0, так и на .net 4.5, и оба раза наблюдал одно и то же поведение.   -  person Per Hyyrynen    schedule 03.10.2016
comment
По дизайну для Win10 левая/нижняя/правая границы прозрачны. Все еще хорошо видно на фоне большой тени, настолько заметно, что трудно сказать, прозрачна ли граница :) Верхняя граница видна видна, довольно некрасиво. Избегайте борьбы с машиной, вы не можете выиграть эту битву, и нет смысла заявлять о победе, когда это отличает ваши окна от других, используемых другими приложениями.   -  person Hans Passant    schedule 03.10.2016
comment
@HansPassant Спасибо за разъяснение. Я думал, что сойду с ума на какое-то время! верхняя граница действительно уродлива. Скорее всего, я перестану использовать ToolWindow FormBorderStyle, чтобы диалоги выглядели лучше в сценариях с низкой производительностью. Спасибо.   -  person Per Hyyrynen    schedule 03.10.2016


Ответы (1)


Цитируя часть комментария Ханса Пассанта:

По дизайну для Win10 левая/нижняя/правая границы прозрачны. Все еще хорошо виден на фоне большой тени, настолько заметен, что трудно сказать, прозрачна ли граница...

Наше приложение имеет свой собственный графический стиль, из-за которого было особенно трудно различить, где заканчивается один диалог и начинается другой.

Быстрое решение для нас состояло в том, чтобы прекратить использование FormBorderStyle FixedToolWindow или SizableToolWindow.

В долгосрочной перспективе мы прорабатываем все наши диалоги и графический стиль нашего приложения, чтобы диалоги было легче отличить друг от друга с рамками или без них.

person Per Hyyrynen    schedule 02.12.2016