Расположите элементы графического интерфейса в WPF аналогично приложениям на iPhone - PullRequest
4 голосов
/ 24 февраля 2009

Я бы хотел упорядочить UIControls в WPF аналогично приложениям на iPhone. Они должны быть расположены на сетке, но пользователь должен иметь возможность перетаскивать их куда-то еще, после отпускания кнопки мыши (или пальца в случае iPhone) выбранный UIControl должен вернуться к следующей позиции в сетке. Остальные элементы UIE должны быть переставлены автоматически.

Далее пользователю также нужно соединить два элемента линией или чем-то.

У меня нет опыта работы с WPF. Первый вопрос: есть ли контейнер, который подходит для чего-то (System.Windows.Controls.Grid?) Или мне нужно расширить холст или еще что-нибудь для этого.

Я хотел бы знать, какие элементы из WPF-фреймворка можно использовать и какие элементы я должен написать сам.

Для людей, у которых нет iPhone: http://www.youtube.com/watch?v=3omhu2AUWC8

Обновление

Я смотрел на AnimatedTilePanel в примерах BangOTricks (см. Ниже), в этом разделе объясняется, как создать свою собственную панель и как она может все устроить там. Однако мне все еще нужна идея, как правильно реализовать перетаскивание в этом примере ..

Ответы [ 4 ]

2 голосов
/ 25 февраля 2009

К сожалению, вам придется много чего писать самостоятельно, так как WPF автоматически не делает то, что вы ищете.

Для позиционирования элементов управления вы можете использовать либо UniformGrid, либо Grid. Предполагая, что это очень похоже на видео с iPhone, которое вы показали, вы можете просто использовать UniformGrid с 4 столбцами и любым количеством строк, которое вам нужно.

Для анимации перетаскивания в плане компоновки вы можете начать с манипуляции со свойством RenderTransform того, что перетаскивается, но вам нужно будет установить обработчик для проверки, как только вы встретите любой порог, необходимый для перехода в другой. «ячейка» - и в этот момент вам придется изменить порядок элементов в дереве.

1 голос
/ 25 февраля 2009

Посмотрите на AnimatedTilePanel от Kevin's Bag-o-Tricks по адресу:

http://j832.com/bagotricks/

Он не делает все, что вы хотите, но покажет вам, как написать панель, которая анимирует своих дочерних элементов при изменении размера или порядка.

0 голосов
/ 27 ноября 2012

Новый вход в этот старый пост в 09. Ранее в этом году (2012) кто-то написал FluidWrapPanel и открыл его из источника. Я попробовал это, и это работает как шарм - так же, как это в меню iPhone.

Вы также можете применить к другим элементам пользовательского интерфейса или UserControl.

0 голосов
/ 24 февраля 2009

Вы можете проверить эту статью для идей по макету. http://www.code -magazine.com / Article.aspx? Quickid = 0803061

Эта статья / библиотека может помочь вам с перетаскиванием: http://pavanpodila.spaces.live.com/blog/cns!9C9E888164859398!229.entry

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...