AIMP Forum

AIMP for Windows => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: Kibermanick on March 11, 2019, 19:20:49

Title: Не одинаковое отображение положения текста.
Post by: Kibermanick on March 11, 2019, 19:20:49
Это баг, или я что-то забыл сделать?



(https://www.aimp.ru/forum/index.php?action=dlattach;topic=62142.0;attach=56876)
Title: Re: Не одинаковое отображение текста.
Post by: Kibermanick on March 18, 2019, 17:05:38
Ну дак что, с этим можно что-нибудь сделать?
Title: Re: Не одинаковое отображение положения текста.
Post by: Zhenya on March 18, 2019, 17:37:50
Я по картинке вообще ничего не понял. Что имеется ввиду-то хоть?
Title: Re: Не одинаковое отображение положения текста.
Post by: Kibermanick on March 18, 2019, 17:40:21
Я по картинке вообще ничего не понял. Что имеется ввиду-то хоть?

Тексту "Вся музыка" не сидится на месте, он отображается как надо только на 100% и 150% масштабе, на остальных он съехал вниз, даже на 200%, что висма странно.
Title: Re: Не одинаковое отображение положения текста.
Post by: Artem on March 18, 2019, 20:33:54
Нужны исходные данные: что за шрифт и какой у него размер по умолчанию.
Title: Re: Не одинаковое отображение положения текста.
Post by: Kibermanick on March 18, 2019, 21:45:08
Нужны исходные данные: что за шрифт и какой у него размер по умолчанию.

Это TASETextDisplayEx, шрифт Segoe UI без стилей 16-го размера и с ClearType сглаживанием.
Title: Re: Не одинаковое отображение положения текста.
Post by: Artem on March 20, 2019, 14:14:33
Шрифт - штука капризная, вот у вашего Segoe UI поддерживаются вот такие размеры: 16 18 20 22 24 26 28 36 48.

16 при 125% - 20
16 при 150% - 24
16 при 200% - 32, но такого нет и винда берет ближайший, скорее всего это будет 36.

А позиционируете вы текст по центру кнопки вручную? Или с помощью свойства "центрировать по вертикали"? Лучше использовать последнее.

P.S. Если вгрызаться в детали - шрифт скейлится более хитро: скейлится не его размер, а высота (https://support.microsoft.com/en-us/help/74299/info-calculating-the-logical-height-and-point-size-of-a-font), соответственно, даже при 125% целевой размер может получаться не 20, а 21, например.
Title: Re: Не одинаковое отображение положения текста.
Post by: Kibermanick on March 22, 2019, 12:32:03
Шрифт - штука капризная, вот у вашего Segoe UI поддерживаются вот такие размеры: 16 18 20 22 24 26 28 36 48.

16 при 125% - 20
16 при 150% - 24
16 при 200% - 32, но такого нет и винда берет ближайший, скорее всего это будет 36.

А позиционируете вы текст по центру кнопки вручную? Или с помощью свойства "центрировать по вертикали"? Лучше использовать последнее.

P.S. Если вгрызаться в детали - шрифт скейлится более хитро: скейлится не его размер, а высота (https://support.microsoft.com/en-us/help/74299/info-calculating-the-logical-height-and-point-size-of-a-font), соответственно, даже при 125% целевой размер может получаться не 20, а 21, например.


Висма печально и странно, как же тогда собственное масштабирование винды, это же ее стандартный шрифт по умолчанию. А как вы проверяли какие размеры поддерживает данный шрифт? Да и вообще странно, шрифт же векторный, масштабируй как хочешь. В том же фотошопе можно любой размер прописать, даже дробный. Блин ну это же такой косяк, у меня же все отступы рассчитаны, и до текста, и после.
Title: Re: Не одинаковое отображение положения текста.
Post by: Kibermanick on March 22, 2019, 12:39:00
P.S. Если вгрызаться в детали - шрифт скейлится более хитро: скейлится не его размер, а высота (https://support.microsoft.com/en-us/help/74299/info-calculating-the-logical-height-and-point-size-of-a-font), соответственно, даже при 125% целевой размер может получаться не 20, а 21, например.



я понял.


Может можно как-то сделать наоборот, что бы размер высчитывался не по высоте букв а по их длине? Высота не так важна как длина.
Title: Re: Не одинаковое отображение положения текста.
Post by: Artem on March 22, 2019, 12:55:18
Висма печально и странно, как же тогда собственное масштабирование винды, это же ее стандартный шрифт по умолчанию.

Во-первых, 16пт для 100% винда вряд ли где-то использует.
Во-вторых, +1/2 для столь большого шрифта - не так страшно.
В-третьих, современные интерфейсы строятся максимально адаптивными - без расстановки элементов вручную попиксельно.

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

Векторный? Не уверен я в этом.

В том же фотошопе можно любой размер прописать, даже дробный.

У фотошопа свой движок рендеринга текста, у меня же - то, что дает API винды.

Блин ну это же такой косяк, у меня же все отступы рассчитаны, и до текста, и после.

Ну а кто запрещает расчет отступов отдать на откуп движку? Пусть он сам центрирует текст.

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

Ну будет погрешность в другую сторону. Покуда дробных значений нет - это бесполезно.
Title: Re: Не одинаковое отображение положения текста.
Post by: Kibermanick on March 26, 2019, 16:08:26
Ну а кто запрещает расчет отступов отдать на откуп движку? Пусть он сам центрирует текст.

А вот он не центрирует. У TASETextDisplayEx нет центрирования по вертикали когда включено растяжение по горизонтали, а по вертикали выключено.
Title: Re: Не одинаковое отображение положения текста.
Post by: Zhenya on March 26, 2019, 18:07:52
А вот он не центрирует. У TASETextDisplayEx нет центрирования по вертикали когда включено растяжение по горизонтали, а по вертикали выключено.

А обычный TASETextDisplay не подходит?
Title: Re: Не одинаковое отображение положения текста.
Post by: Kibermanick on March 26, 2019, 19:01:04
А обычный TASETextDisplay не подходит?

Нет, он же должен растягивать эту кнопку по длине в зависимости от размера текста. Хотя я придумал один костыль с участием обычного текста.
Title: Re: Не одинаковое отображение положения текста.
Post by: Artem on March 26, 2019, 20:14:25
Ох. Вместо того, чтобы записать предложение по AutoSize для кнопки и обычной текстовой метки - костыли...
Короче говоря, я задачу понял. Введу AutoSize.
Title: Re: Не одинаковое отображение положения текста.
Post by: Kibermanick on March 26, 2019, 22:34:22
Ох. Вместо того, чтобы записать предложение по AutoSize для кнопки и обычной текстовой метки - костыли...
Короче говоря, я задачу понял. Введу AutoSize.

Ну, я просто разобраться хотел но, так даже лучше.) Спасибо.