AIMP Forum
AIMP for PC => Предложения / Suggestions => Skin Editor, Skin Engine => Skin Engine => Topic started by: Kibermanick on September 11, 2015, 14:43:01
-
Предлагаю такую штуку. Дополнительно к существующей. Когда объекты, выравниваются относительно только одной стороны. То при растягивании окна они остаются на месте. Предлагаю что бы объекты еще могли позиционироваться пропорцианально.
(http://storage2.static.itmages.ru/i/15/0911/h_1441971750_8930105_2e8ac56797.png)
-
Предлагаю что бы объекты еще могли позиционироваться пропорцианально.
Случай, близкий к экзотическим, к тому же частный - кнопки расположены симметрично от центра окна, а могут быть и с боку, и по вертикали. Математику всего этого представляете?
А частный случай можно разрешить и сейчас - с помощью скриптов.
-
Случай, близкий к экзотическим, к тому же частный - кнопки расположены симметрично от центра окна, а могут быть и с боку, и по вертикали. Математику всего этого представляете?
Согласен.
А частный случай можно разрешить и сейчас - с помощью скриптов.
Даже легче - с помощью контейнеров с выравниванием "laClient".
-
Случай, близкий к экзотическим, к тому же частный - кнопки расположены симметрично от центра окна, а могут быть и с боку, и по вертикали. Математику всего этого представляете?
А частный случай можно разрешить и сейчас - с помощью скриптов.
Никакой разницы, по центру или с боку. Математика проста. Надо что бы расстояние преобразовывалось в проценты.
-
Даже легче - с помощью контейнеров с выравниванием "laClient".
Вы серьезно. Это вообще не вариант.
-
И да, на счет частного случая. Данный пример, просто пример. Элименты могут быть различными.
-
А частный случай можно разрешить и сейчас - с помощью скриптов.
Я даже близко не программист. И не любитель. Даже не дилетант.
-
Кидаете панель, на нее - элементы, выравниваете панель как нужно, затем убираете у нее якоря.
-
Кидаете панель, на нее - элементы, выравниваете панель как нужно, затем убираете у нее якоря.
Это ничего не даст.
-
Даже легче - с помощью контейнеров с выравниванием "laClient".
+1
-
Это ничего не даст.
Разве? Вы попробуйте
-
Разве? Вы попробуйте
Я пробовал. Результата ноль.
-
Kibermanick, смотри пример. Использовал 3 вложенных контейнера с выравниванием laClient, в которых элементы не имеют привязок вообще никаких.
-
Использовать миллиард контейнеров это бред.
-
Использовать миллиард контейнеров это бред.
Ну окей, настраивайте таким образом каждую кнопку, только расстояние между ними будет тоже прыгать.
-
... Использовал 3 вложенных контейнера с выравниванием laClient, в которых элементы не имеют привязок вообще никаких.
Вполне лаконично получилось - куда уж проще. +1
Только маленький вопрос возник (когда то уже была у меня подобная ситуация): почему контейнеры расположились именно по горизонтали? Существует какой-то приоритет?
-
Вполне лаконично получилось - куда уж проще. +1
Только маленький вопрос возник (когда то уже была у меня подобная ситуация): почему контейнеры расположились именно по горизонтали? Существует какой-то приоритет?
Движок смотрит на одного из предков с отличным от laClient выравниванием и в зависимости от этого располагает группы горизонтально или вертикально
-
Движок смотрит на одного из предков с отличным от laClient выравниванием и в зависимости от этого располагает группы горизонтально или вертикально
Но, в приведённом примере у всех родителей до самого окна выравнивание laClient. Как быть в подобной ситуации, если захочется расположить контейнеры вертикально?
К тому же, если у контейнера будет выравнивание, отличное от laClient, то растягивание будет невозможно.
-
Но, в приведённом примере у всех родителей до самого окна выравнивание laClient. Как быть в подобной ситуации, если захочется расположить контейнеры вертикально?
К тому же, если у контейнера будет выравнивание, отличное от laClient, то растягивание будет невозможно.
Никто не мешает вложить еще один доп. контейнер.
-
К тому же, если у контейнера будет выравнивание, отличное от laClient, то растягивание будет невозможно.
Нет, laTop и laBottom разрешают растягивание в ширину, а laLeft и laRight в высоту.
-
Нет, laTop и laBottom разрешают растягивание в ширину, а laLeft и laRight в высоту.
Да, так оно. Но если следовать совету Tarik'a, то по логике надо добавлять контейнер с выравниванием laTop или laBottom, а растягивать надо по вертикали.
Вопрос, конечно, чисто теоретический, врядли это может где-то понадобиться. Пробовал принудительно расположить контейнеры по вертикали с выравниванием laTop (laBottom), но как только назначаешь им выравнивание laClient, они выстраиваются по горизонтали.
-
Да, так оно. Но если следовать совету Tarik'a, то по логике надо добавлять контейнер с выравниванием laTop или laBottom, а растягивать надо по вертикали.
Вопрос, конечно, чисто теоретический, врядли это может где-то понадобиться. Пробовал принудительно расположить контейнеры по вертикали с выравниванием laTop (laBottom), но как только назначаешь им выравнивание laClient, они выстраиваются по горизонтали.
Вот, сделал так, чтобы элементы равномерно располагались по высоте (добавлен один контейнер LayoutContainer5 laLeft, и для того, чтобы окно могло растягиваться, корневому контейнеру этого окна, LayoutContainer, выставлено свойство AutoSize = false)
-
Ну и на последок - равномерное расположение элементов при растягивании во все встороны :)
Единственный недочет - растягиваются не контейнеры с содержимым (контейнеры с более темным фоном), а контейнеры-промежутки между ними, что в принципе не должно влиять на конечный результат.
-
Ну и на последок - равномерное расположение элементов при растягивании во все встороны :)
Единственный недочет - растягиваются не контейнеры с содержимым (контейнеры с более темным фоном), а контейнеры-промежутки между ними, что в принципе не должно влиять на конечный результат.
Tarik, спасибо за труды.
Внешне всё смотрится так, как надо, однако горизонтальное расположение контейнеров остаётся приоритетным. Если просто кинуть два контейнера с выравниванием alClient на форму , то они непременно расположатся по горизонтали и без некоторых ухищрений вертикально их не расставить. Может, стоит задуматься над этим моментом, добавить некое свойство контейнеру (родителю), указывающее на необходимое направление размещения в нём дочерних контейнеров для случая laClient у всех?
-
Вот видите сколько трудностей.