Поскольку «Картинка говорит тысячу слов», см. Рисунок ниже, чтобы узнать, чего я пытаюсь достичь с помощью своего пользовательского Panel
в WPF. (к сожалению, так как я относительно новый пользователь, я не могу разместить изображение как таковое - так что это символы!)
(каждый «прямоугольник» представлен числом, перекрывающим область прямоугольников, обозначенных «-», время в горизонтальной плоскости слева направо)
Я не хочу этого:
111111111-----2222222222----------2222222222222222222222222-----22222
Я хочу это:
222222222222222222222222222222222222222222222222222222222222
11111111111111 3333333333 44444
Итак, вы можете видеть, что я хочу сместить объекты по вертикали, чтобы предотвратить наложение по горизонтали. Таким образом, в моем примере «Box 2» был смещен вверх, чтобы предотвратить частичное перекрытие с «Box 1» и полное перекрытие с «3» и «4». Просто чтобы прояснить, у меня нет проблем с логикой для горизонтальных (свойства left и width) объектов.
Я хочу знать: существует ли алгоритм, который может автоматически перемещать объекты по вертикали, чтобы предотвратить это перекрытие. (Очевидно, мне нужно общее решение, которое не относится только к моему примеру выше.)
Любая помощь будет принята с благодарностью.
Ciao,
Пит