Лучшая практика для панорамирования/масштабирования пользовательского элемента управления?

В настоящее время у нас есть пользовательский элемент управления, который отображает динамическую матрицу других пользовательских элементов управления. Поскольку он динамический, представление может стать большим, что потребует от пользователя прокрутки вверх/вниз и влево/вправо в браузере, чтобы просмотреть все.

Я хотел бы предоставить пользователям один вид пользовательского элемента управления с возможностью панорамирования и масштабирования, как в это элемент управления Telerik. У нас есть элементы управления Telerik, и я пытался использовать элемент управления Map для нашей цели, но не похоже, что это будет хорошим решением.

Я также поместил Canvas внутрь средства просмотра прокрутки и смог сделать его панорамирование (используя полосы прокрутки) и масштабирование (используя Scale Transform). Это работает довольно хорошо, но не так гладко, как управление Telerik.

Итак, мне интересно, какие еще есть способы сделать это. Я упускаю из виду элемент управления Silverlight, который подойдет мне? Любой вклад будет принят с благодарностью!


person JSprang    schedule 28.05.2010    source источник
comment
Что вы имеете в виду, говоря, что это не так гладко, как управление Telerix? Я использовал это точное решение в прошлом и нашел его очень быстрым и очень плавным.   -  person Stephan    schedule 28.05.2010
comment
Когда я увеличиваю масштаб, он просто привязывается к следующему уровню масштабирования. Я полагаю, что мог бы сделать какую-то анимацию перехода, чтобы сделать ее более плавной. Кроме того, у них есть возможность «бросить» при панорамировании. Я не совсем уверен, как это сделать. Какие-либо предложения? Я рад слышать, что вы подошли к этому так же, как я, я должен быть на правильном пути!   -  person JSprang    schedule 28.05.2010
comment
Я забыл упомянуть одну вещь, которую я не смог реализовать. Я хотел, чтобы пользователи могли приближаться к местоположению мыши. Моя текущая реализация будет просто прямо на объекте. Я уверен, что смогу заставить это работать, мне просто было любопытно, есть ли там элемент управления, который уже делает это, и я не хотел делать это сложнее, чем нужно.   -  person JSprang    schedule 28.05.2010


Ответы (1)


Я нашел это на CodePlex, и мне нравится их подход. Я, вероятно, буду настраивать его так, чтобы он был именно тем, что я хочу, но это хорошее начало. Примечание. Он не реализует возможности «бросания».

person JSprang    schedule 28.05.2010