Логика размещения объектов панели WPF: существует ли алгоритм для распределения горизонтально фиксированных элементов по вертикали для предотвращения их наложения? - PullRequest
0 голосов
/ 16 декабря 2010

Поскольку «Картинка говорит тысячу слов», см. Рисунок ниже, чтобы узнать, чего я пытаюсь достичь с помощью своего пользовательского Panel в WPF. (к сожалению, так как я относительно новый пользователь, я не могу разместить изображение как таковое - так что это символы!)

(каждый «прямоугольник» представлен числом, перекрывающим область прямоугольников, обозначенных «-», время в горизонтальной плоскости слева направо)

Я не хочу этого:

    111111111-----2222222222----------2222222222222222222222222-----22222

Я хочу это:

             222222222222222222222222222222222222222222222222222222222222
    11111111111111          3333333333                         44444

Итак, вы можете видеть, что я хочу сместить объекты по вертикали, чтобы предотвратить наложение по горизонтали. Таким образом, в моем примере «Box 2» был смещен вверх, чтобы предотвратить частичное перекрытие с «Box 1» и полное перекрытие с «3» и «4». Просто чтобы прояснить, у меня нет проблем с логикой для горизонтальных (свойства left и width) объектов.

Я хочу знать: существует ли алгоритм, который может автоматически перемещать объекты по вертикали, чтобы предотвратить это перекрытие. (Очевидно, мне нужно общее решение, которое не относится только к моему примеру выше.)

Любая помощь будет принята с благодарностью.

Ciao, Пит

1 Ответ

0 голосов
/ 17 декабря 2010

Вы смотрели на WrapPanel? Кажется, похоже на то, что вы хотите.

...