Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
1

Приложение под разные визуальные стили Windows

16.06.2015, 09:51. Показов 904. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Столкнулся с тем, что приложение нужно написать под разные визуальные стили Windows.
Форма у меня меняет свой размер фиксировано (открывает скрытую часть). Но в разных стилях естественно размеры окна мягко говоря съезжают вместе с контролами.
Куда копать?

Идею с одним стилем не предлагать.

Не по теме:

ЗЫ. У нас есть блондинки которые любят окна в розовых тонах, кнопку пуск в левом верхнем углу и букавы побольше :) Классический стиль для них некрасивенько и неудобненько.



Добавлено через 16 часов 57 минут
В общем решил так:
Разница начинает проявляться в высоте заголовка формы. Если установлен "Стиль Аэро" то заголовок формы больше заголовка формы "Классического стиля" (опытным путем) на 12.
Ну и все, что нужно сделать это проверить какой стиль установлен у пользователя и увеличить/уменьшить на 12 форму.
Проверяем так:
C#
1
2
3
using System.Windows.Forms.VisualStyles;
...
if (VisualStyleInformation.DisplayName == "")
Если вернет пустое значение то скорее всего установлен Классический стиль. Если Aero то тут еще в зависимости от того на каком языке Windows. В русской редакции вернет "Стиль Аэро".
Но и тут есть еще момент, пользователь может установить размер заголовка окна (Windows 8). А вот как узнать высоту заголовка окна и бордюра я так и не нашел.
Так узнаем размер заголовка:
Код
Rectangle screenRectangle=RectangleToScreen(this.ClientRectangle);
int titleHeight = screenRectangle.Top - this.Top;
Но еще меняется и "бордюр" как его вычислить не знаю...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.06.2015, 09:51
Ответы с готовыми решениями:

Стили под разные разрешения
Делаю сайт под разные разрешение экрана делаю это с помощью <link rel="stylesheet" media="screen...

Визуальные стили в C#
Если убрать из кода (например, закомментить) строку Application.EnableVisualStyles(); т.е....

Как подключить визуальные стили в VBA?
Как подключить визуальные стили в VBA? Возможно ли это (стандартный вид кнопочек и остальных...

Стандартные визуальные стили D10.1 Berlin - Тормозят!
Добавил в ПО возможность смены скинов, использовал для этого стандартные стили RAD Studio,...

0
16.06.2015, 09:51
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.06.2015, 09:51
Помогаю со студенческими работами здесь

Как протестировать приложение под разные разрешения мониторов?
Вопрос в заголовке)

Компилятор для разработки под разные Windows
Какой компилятор даст возможность использования API Windows и при этом будет создавать программы,...

Разные драйверы под разное железо на одной и той же системе Windows
Можно ли установить в системе драйвера под разные типы железа и по необходимости выбирать" нужный...

Приложение под Windows
Здравствуйте все! Я пишу программу для известного и так любимого всеми нами Вконтакте. Моя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Откуда у float лишние цифры в конце дробной части. Представление чисел с плавающей точкой
bytestream 25.01.2025
При разработке программного обеспечения часто возникает необходимость работать с вещественными числами, которые содержат дробную часть. В современных компьютерных системах такие числа представляются. . .
Как использовать глобальную переменную в функции в Python
bytestream 25.01.2025
В программировании на Python глобальные переменные представляют собой особый тип переменных, которые доступны для использования во всех частях программы, включая различные функции, классы и модули. . . .
Как в цикле обойти все элементы map в Java
bytestream 25.01.2025
В разработке на Java одной из наиболее востребованных структур данных является интерфейс Map, который предоставляет эффективный способ хранения и управления парами "ключ-значение". Разработчики. . .
Для чего нужен UserManager.isU­serAGoat(­) в Android и как это использовать
bytestream 25.01.2025
В мире Android-разработки существует множество интересных и порой загадочных функций, о которых знают далеко не все разработчики. Одной из таких функций является метод UserManager. isUserAGoat(),. . .
Как обойти масси в JavaScript. Всё о циклах
bytestream 25.01.2025
JavaScript представляет собой мощный язык программирования, широко используемый в веб-разработке, где массивы и циклы являются фундаментальными концепциями для эффективной работы с данными. Массив в. . .
Как сделать, чтобы существующая ветка отслеживала удалённую в Git. Связывание локальных и удалённых веток
bytestream 25.01.2025
В разработке программного обеспечения системы контроля версий стали неотъемлемой частью процесса создания качественного программного продукта. Эти инструменты позволяют разработчикам эффективно. . .
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru