Передача управления другому контролю wpf во время mousedown - PullRequest
0 голосов
/ 18 января 2012

На этот раз у меня для тебя трудный вопрос: -)

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

Как только пользователь отпускает кнопку мыши, ползунок должен исчезнуть.

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

Есть ли способ сделать это приятным образом с WPF?

Любая помощь высоко ценится!

С уважением, Michael

1 Ответ

0 голосов
/ 18 января 2012

Пожалуйста, ответьте сначала на эти вопросы

  1. Какой у вас текущий XAMl и код позади?
  2. Пока указатель ползунка получает , перетаскиваемый вдоль его длины,Вы хотите, чтобы кнопка постоянно удерживалась нажатой?
  3. Если да, то использовали ли вы ToggleButton, потому что она может быть нажата повсюду и может переключаться (не нажиматься), когда вы устанавливаете свойство IsChecked вfalse (т. е. когда пользователь отпускает кнопку мыши).
  4. Вы проверяли состояние кнопки мыши как Pressed (из аргументов события кнопки e), когда мышь перемещается над каким-либо элементом, таким как ползунок, здесь?

например

    e.LeftButton == MouseButtonState.Pressed

РЕДАКТИРОВАТЬ

Относится к точке №.2 ....

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

Кроме того, свойство IsChecked ToggleButton может быть двусторонне связано со свойством IsOpen всплывающего окна.Таким образом, когда пользователь прекращает скольжение и отпускает мышь, мы можем установить IsOpen всплывающего окна как ложное, и это автоматически отжимает тумблер из-за этой двусторонней привязки.

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