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

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

🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
Статус: Offline
Реєстрація: 14.09.2005
Повідом.: 952
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #1
C# . Обращение к системным настройкам

Здравствуйте, пишу программу на шарпе. Столкнулся с такой проблемой, что в зависимости от того какой стиль оформления выбран в системе (классический или ХР) объекты NumericUpDown получаются разного размера вне зависимости от того, какой размер у них задан по умолчанию. Вопрос такой, как можно программно прочитать настройки системы, а именно то какой стиль оформления выбран, чтобы на основании этих данных программно менять размеры объектов?
 
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #2
Не будь бабой, напиши свой контрол :)
 
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #3
настрой нормально докинг или анхоры и будет тебе счастье
 
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #4
Не будь бабой, напиши свой контрол
отлично, тогда всего лишь осталось узнать как это сделать -_-

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

Вкладення

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

Плюс, сдается мне, что ширина кнопок напрямую связана с шириной скроллбара в текущей теме, где там надо искать.
Что-то я не совсем понимаю, не могли бы вы по подробнее? что значит "ширина скроллбара в текущей теме"?
 
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #9
Сделать пошире можно, но с этим очень много придётся возиться, чтобы уместить всё это как можно более компактно
правило №1 "не тули", экраны нонче большия.
правило №2 "делай растягиваемое". вот что, ежели юзер туда шестизначное число захочет, ага?

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

ну в .NET естесно каким-то фриендли раппером это обернули.
 
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #10
правило №1 "не тули", экраны нонче большия.
Дома - да. Программа скорее всего будет использована где-то в институтах, где мониторы в обычно 15-17 дюймов...

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

что ширина кнопок напрямую связана с шириной скроллбара в текущей теме
тьфу ты... торможу.. Нет, не связана - проверял. Я проверил вообще все регулируемые пользователем параметры. Я так подозреваю, что просто по умолчанию существует несколько вариантов оформления объекта в зависимости от стиля.
 
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #11
тьфу ты... торможу.. Нет, не связана - проверял.
и точно:eek:.
как насчет ClientSize?

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

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

просто выше какого-то максимума кнопки уже не расширяются.
Вот под этот максимум надо и закладываться.
 
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #12
как насчет ClientSize?
Попробовал. object.ClientSize в данном случае внешне тоже самое, что и object.Size .

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

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

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

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

Вкладення

  • Классический стиль.JPG
    Классический стиль.JPG
    1.8 КБ · Перегляди: 119
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #13
Я так подозреваю, что просто по умолчанию существует несколько вариантов оформления объекта в зависимости от стиля.

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

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

и посмотри как будет выглядеть твой контрол на разных настройках системы... ;)
 
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #14
- базовый размер шрифта: на Свойства экрана в закладочке Appearance
- DPI дисплея: на свойствах экрана в закладочке Settings -> кнопка Advanced -> закладка General -> DPI settings
Только что проверил.. в программе на это реагируют только заголовки окон...
 
  • 🟡 03:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #15
у меня такое было, только на asp.net c DropDownList почему ту в таблице два листа стали меньше чем все остальные... ксс отладил до пикселов! Так и не понял в чём дело... переписал таблицу - всё нормально стало... либо глюк, либо гдето скобку поставил не так..!
 
Назад
Зверху Знизу