Змінюй хід війни! Допомагай ЗСУ!

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

🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
Статус: Offline
Реєстрація: 14.09.2005
Повідом.: 952
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #1
C# . Обращение к системным настройкам

Здравствуйте, пишу программу на шарпе. Столкнулся с такой проблемой, что в зависимости от того какой стиль оформления выбран в системе (классический или ХР) объекты NumericUpDown получаются разного размера вне зависимости от того, какой размер у них задан по умолчанию. Вопрос такой, как можно программно прочитать настройки системы, а именно то какой стиль оформления выбран, чтобы на основании этих данных программно менять размеры объектов?
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #2
Не будь бабой, напиши свой контрол :)
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #3
настрой нормально докинг или анхоры и будет тебе счастье
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #4
Не будь бабой, напиши свой контрол
отлично, тогда всего лишь осталось узнать как это сделать -_-

настрой нормально докинг или анхоры и будет тебе счастье
Тут так не выйдет. Дело в том, что при разных стилях кнопки со стрелками вверх и вниз имеют разный размер. Тоесть за счёт этого меняется и общий размер. Если надо, могу сделать скрины..
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #5
Давай скрины.
Кажись, там не в верстке дело.
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #6
Вот так это выглядит. Первый скрин при стиле ХР, всё как и положено. Второй скрин - это так выглядит при классическом стиле на моём компе. Третий скрин - классический стиль на компе сестры. В последнем случае там даже цифры не отображаются, т.к. не влазят.. Если поиграться со стрелками и выделением, то можно кое-как увидеть цифру. Такое я встречал ещё на одном компьютере.
 

Вкладення

  • Стиль ХР.JPG
    Стиль ХР.JPG
    6.4 КБ · Перегляди: 87
  • Классический стиль 1.JPG
    Классический стиль 1.JPG
    5.6 КБ · Перегляди: 95
  • Классический стиль 2.JPG
    Классический стиль 2.JPG
    5.5 КБ · Перегляди: 87
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #7
А кто мешает эти спинЫ поширее сделать?
Плюс, сдается мне, что ширина кнопок напрямую связана с шириной скроллбара в текущей теме, где там надо искать.
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8
А кто мешает эти спинЫ поширее сделать?
Сделать пошире можно, но с этим очень много придётся возиться, чтобы уместить всё это как можно более компактно

Плюс, сдается мне, что ширина кнопок напрямую связана с шириной скроллбара в текущей теме, где там надо искать.
Что-то я не совсем понимаю, не могли бы вы по подробнее? что значит "ширина скроллбара в текущей теме"?
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #9
Сделать пошире можно, но с этим очень много придётся возиться, чтобы уместить всё это как можно более компактно
правило №1 "не тули", экраны нонче большия.
правило №2 "делай растягиваемое". вот что, ежели юзер туда шестизначное число захочет, ага?

Что-то я не совсем понимаю, не могли бы вы по подробнее? что значит "ширина скроллбара в текущей теме"?
Win32 API GetSystemMetrics(SM_CXVSCROLL)

ну в .NET естесно каким-то фриендли раппером это обернули.
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #10
правило №1 "не тули", экраны нонче большия.
Дома - да. Программа скорее всего будет использована где-то в институтах, где мониторы в обычно 15-17 дюймов...

правило №2 "делай растягиваемое". вот что, ежели юзер туда шестизначное число захочет, ага?
Не захочет и не сможет. Там предусмотрено ограничение: значения от 0 до 4.

что ширина кнопок напрямую связана с шириной скроллбара в текущей теме
тьфу ты... торможу.. Нет, не связана - проверял. Я проверил вообще все регулируемые пользователем параметры. Я так подозреваю, что просто по умолчанию существует несколько вариантов оформления объекта в зависимости от стиля.
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #11
тьфу ты... торможу.. Нет, не связана - проверял.
и точно:eek:.
как насчет ClientSize?

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

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

просто выше какого-то максимума кнопки уже не расширяются.
Вот под этот максимум надо и закладываться.
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #12
как насчет ClientSize?
Попробовал. object.ClientSize в данном случае внешне тоже самое, что и object.Size .

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

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

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

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

Вкладення

  • Классический стиль.JPG
    Классический стиль.JPG
    1.8 КБ · Перегляди: 119
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #13
Я так подозреваю, что просто по умолчанию существует несколько вариантов оформления объекта в зависимости от стиля.

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

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

и посмотри как будет выглядеть твой контрол на разных настройках системы... ;)
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #14
- базовый размер шрифта: на Свойства экрана в закладочке Appearance
- DPI дисплея: на свойствах экрана в закладочке Settings -> кнопка Advanced -> закладка General -> DPI settings
Только что проверил.. в программе на это реагируют только заголовки окон...
 
  • 🟠 21:47 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #15
у меня такое было, только на asp.net c DropDownList почему ту в таблице два листа стали меньше чем все остальные... ксс отладил до пикселов! Так и не понял в чём дело... переписал таблицу - всё нормально стало... либо глюк, либо гдето скобку поставил не так..!
 
Назад
Зверху Знизу