C# . Обращение к системным настройкам

Статус: Offline
Реєстрація: 14.09.2005
Повідом.: 952
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #1
C# . Обращение к системным настройкам

Здравствуйте, пишу программу на шарпе. Столкнулся с такой проблемой, что в зависимости от того какой стиль оформления выбран в системе (классический или ХР) объекты NumericUpDown получаются разного размера вне зависимости от того, какой размер у них задан по умолчанию. Вопрос такой, как можно программно прочитать настройки системы, а именно то какой стиль оформления выбран, чтобы на основании этих данных программно менять размеры объектов?
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #2
Не будь бабой, напиши свой контрол
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #3
настрой нормально докинг или анхоры и будет тебе счастье
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #4
Не будь бабой, напиши свой контрол
отлично, тогда всего лишь осталось узнать как это сделать -_-

настрой нормально докинг или анхоры и будет тебе счастье
Тут так не выйдет. Дело в том, что при разных стилях кнопки со стрелками вверх и вниз имеют разный размер. Тоесть за счёт этого меняется и общий размер. Если надо, могу сделать скрины..
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #5
Давай скрины.
Кажись, там не в верстке дело.
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #6
Вот так это выглядит. Первый скрин при стиле ХР, всё как и положено. Второй скрин - это так выглядит при классическом стиле на моём компе. Третий скрин - классический стиль на компе сестры. В последнем случае там даже цифры не отображаются, т.к. не влазят.. Если поиграться со стрелками и выделением, то можно кое-как увидеть цифру. Такое я встречал ещё на одном компьютере.
 

Вкладення

  • Стиль ХР.JPG
    6.4 КБ · Перегляди: 87
  • Классический стиль 1.JPG
    5.6 КБ · Перегляди: 96
  • Классический стиль 2.JPG
    5.5 КБ · Перегляди: 87
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #7
А кто мешает эти спинЫ поширее сделать?
Плюс, сдается мне, что ширина кнопок напрямую связана с шириной скроллбара в текущей теме, где там надо искать.
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #8
А кто мешает эти спинЫ поширее сделать?
Сделать пошире можно, но с этим очень много придётся возиться, чтобы уместить всё это как можно более компактно

Что-то я не совсем понимаю, не могли бы вы по подробнее? что значит "ширина скроллбара в текущей теме"?
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #9
правило №1 "не тули", экраны нонче большия.
правило №2 "делай растягиваемое". вот что, ежели юзер туда шестизначное число захочет, ага?

Win32 API GetSystemMetrics(SM_CXVSCROLL)

ну в .NET естесно каким-то фриендли раппером это обернули.
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #10
правило №1 "не тули", экраны нонче большия.
Дома - да. Программа скорее всего будет использована где-то в институтах, где мониторы в обычно 15-17 дюймов...

Не захочет и не сможет. Там предусмотрено ограничение: значения от 0 до 4.

что ширина кнопок напрямую связана с шириной скроллбара в текущей теме
тьфу ты... торможу.. Нет, не связана - проверял. Я проверил вообще все регулируемые пользователем параметры. Я так подозреваю, что просто по умолчанию существует несколько вариантов оформления объекта в зависимости от стиля.
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #11
тьфу ты... торможу.. Нет, не связана - проверял.
и точно.
как насчет ClientSize?

Update: Плохо проверял, все там связано.

Посилання видалено

просто выше какого-то максимума кнопки уже не расширяются.
Вот под этот максимум надо и закладываться.
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #12
как насчет ClientSize?
Попробовал. object.ClientSize в данном случае внешне тоже самое, что и object.Size .

Ну это в меню. Изменяя размер полосы прокрутки в системе, в программе полосы прокрутки и ComboBox тоже изменяются, а вот NumericUpDown - нет

Нашёл интересное решение проблемы. Есть свойство такое BorderStyle, которое у NumericUpDown по-умолчанию имеет значение Fixed3D. Вот из-за этой 3D-шности в классической схеме его и скукоживало
На картинке:
1. Значение None
2. Значение FixedSingle
3. Значение Fixed3D

Причём, самое интересное, что при стиле ХР визуально разницы между вторым и третьим значением нету.

Всем спасибо за помощь!
 

Вкладення

  • Классический стиль.JPG
    1.8 КБ · Перегляди: 119
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #13

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

Вобщем когда будешь тестить контролы, попробуй поменять настройки:
- базовый размер шрифта: на Свойства экрана в закладочке Appearance
- DPI дисплея: на свойствах экрана в закладочке Settings -> кнопка Advanced -> закладка General -> DPI settings

и посмотри как будет выглядеть твой контрол на разных настройках системы...
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #14
Только что проверил.. в программе на это реагируют только заголовки окон...
 
  • 🔴 23:07 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #15
у меня такое было, только на asp.net c DropDownList почему ту в таблице два листа стали меньше чем все остальные... ксс отладил до пикселов! Так и не понял в чём дело... переписал таблицу - всё нормально стало... либо глюк, либо гдето скобку поставил не так..!