![]() |
|
Модераторы: gambit, Kefir, Partizan |
![]()
|
|
| AleksPingvin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 20.5.2011 Репутация: нет Всего: нет |
Добрый вечер уважаемые комрады!
Несмотря на то, что моя предыдущая тема так и осталась без ответа, рискну задать еще один вопрос. Имеется ListBox (в нем лежат например кнопки), на него повешены обработчики событий PreviewMouseDown, DragOver, Drop - перетаскивание реализованно стандартно. Однако клик на кнопку не проходит.. как я понял из-за того, что я подписан на PreviewMouseDown событие. Если делать подписку на MouseDown, то кнопки кликаются, но перестают таскаться итемы ListBox. Подскажите как быть? Надо что бы и таскалось и если надо то кликалось. |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Мне неизвестно, каким образом вы все делаете. Проблема может быть где угодно.
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| AleksPingvin |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 20.5.2011 Репутация: нет Всего: нет |
Согласен.. телепаты в отпуске... Извините, писал ночью - не сообразил по подробней расписать
Итак вот кусок XAML:
Вот код обработчика нажатия:
При таком раскладе когда я кликаю на свертывание-развертывание экспандера или тестовую кнопку внутри него - то они не нажимаются. |
||||
|
|||||
| -Mikle- |
|
||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Нет, это из-за того, что при клике ты сразу начинаешь операцию Drag&Drop. В твоем случае могу предложить не начинать операцию Drag пока юзер не начнет движение мышкой. Чтобы дать пользователю некую лояльность при кликах (как правило случайную), можно задать некую область в которой ему разрешено двигаться при нажатой левой кнопке до того, как начнется перетаскивание. В примере ниже задается такая область ±5 пикселей.
Весь этот код можно оформить в виде AttachedProperty чтобы в дальнейшем его можно было использовать с любым контролом. -------------------- Если тебе плюют в спину, значит ты впереди... |
||||
|
|||||
| AleksPingvin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 20.5.2011 Репутация: нет Всего: нет |
Самое смешное, что я вчера об этом думал... но не придал значение. Действительно все дело было именно в этом) Спасибо!
|
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Рад помочь. Приходи еще.
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 4 Всего: 18 |
Ещё, как мне кажется, лучше использовать системные параметры дистанции для начала драга
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |