Поворот с в Панорма .... проведите оба вместе - PullRequest
0 голосов
/ 06 сентября 2011

когда я использую pivot с панорамой .pivot используются как вид галереи. Я хочу переместить шарнир при смахивании. Но проблема в том, что панорама и шарнир - это одно и то же событие жеста, поэтому они оба перемещаются. Я хочу, чтобы провести только мой сводный вид.

Я хотел бы, чтобы какой-нибудь пример кода или любое другое предложение сделало это. поэтому, пожалуйста, дайте мне решение для этого и Также дайте мне ссылку, где я легко это понимаю. Спасибо заранее

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Я считаю, что это достижимо, потому что я уже решил подобные проблемы с наличием элемента управления WebBrowser внутри настраиваемого горизонтального прокручиваемого контейнера обзора, такого как Pivot / Panorama, но, поверьте, это НЕ стоит.Мне пришлось очень глубоко копаться в визуальной структуре элементов управления и прикреплять свои собственные манипуляторы-манипуляторы к их внутренностям, вручную выбирать, какие события horiz / verti следует передавать, а какие отменять, и так далее.Это не так просто, занимает много времени и не гарантирует, что в итоге у вас будет что-то такое, что вы хотели бы достичь в первую очередь.Если вы не связаны каким-либо контрактом по сохранению формы пользовательского интерфейса, пожалуйста, отбросьте идею и измените дизайн своего пользовательского интерфейса, просто чтобы сэкономить на здравом уме и нервах.

Но, если вы уже сошли с ума или действительнохотите копать там, где никто не должен, начните с анализа вашего пользовательского интерфейса в виде двух прямоугольников: большого панорамы и маленького pivo, и подумайте, какая часть должна вести себя как при разных возможных касаниях / hv swipes / hv pans / pinches / и так далее.Запишите это только для справки, или скоро вы, вероятно, начнете делать небольшие ошибки, которые будут мешать вам понять ход событий.

Я проверил версию, которую имею, и «мою» Панорамувнутренне использует события UIElement.ManipulationXXXX.В этом случае:

Отобразите визуальные деревья вашего интерфейса и попробуйте прикрепить события манипуляции к каждому элементу управления.В этих событиях напишите / запишите, какой элемент управления вызвал какой обработчик.Затем сделайте прокрутку / прокрутку на вашем приложении и наблюдайте за событиями.Проанализируйте, как они пузырились, и попробуйте отменить (e.Handled = true) события завершение манипуляции и / или дельта манипуляции где-нибудь между сводкой и панорамой.Ваша цель состоит в том, чтобы панорама видела, что e.Handled = true, в то время как ваш круг должен видеть e.Handled = false.Ваш Pivot, вероятно, увидит событие раньше, чем Pano, поэтому эта точка должна быть относительно легкой.

Если она не работает, вам следует проверить свою версию Pano и проверить, как она обнаруживает движения.Если, например, он использует GestureListener - попробуйте тот же трюк с ним.И т.д.

И помните, вы всегда можете создать свой собственный горизонтальный контейнер-обзор, который будет выглядеть как Pano, вести себя как Pano, и который будет работать с Pivo лучше - потому что это будет ваш код, и вы скажетеэто то, что и когда двигаться.если вы хотите пойти по этому пути, запустите Google и проверьте все предварительные превью Panorama, опубликованные случайными людьми до публикации этого элемента управления MS.

2 голосов
/ 06 сентября 2011

Вы не должны иметь Pivot в элементе управления Panorama.Конец обсуждения.

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