在mousedown期间将控制转移到另一个wpf控件

时间:2012-01-18 07:29:35

标签: wpf controls transfer mousedown

这次我有一个难的: - )

目前我即将在wpf中开发一个usercontrol。我希望此控件在按下此控件中的特定按钮上的鼠标按钮后立即打开滑块。只要仍然按下鼠标按钮,用户应该能够移动此滑块。

一旦用户释放鼠标按钮,滑块就会消失。

我已经有了一个解决方案,但这是一个非常hacky的解决方案,因为我是通过屏幕坐标来完成的。

有没有办法用WPF以愉快的方式做到这一点?

任何帮助都是高度推荐的!

此致 迈克尔

1 个答案:

答案 0 :(得分:0)

请先回答这些问题

  1. 您当前的XAMl和代码是什么?
  2. 当滑块的指针沿其长度拖动时,您是否希望按钮始终保持按下状态?
  3. 如果是这样,你是否使用ToggleButton因为它可以在整个过程中被按下,并且当你将IsChecked属性设置为false时(即当用户释放鼠标按钮时)可以切换(未按下)。
  4. 当鼠标移动,被拖动,某些元素(例如滑块)时,您是否已将鼠标按钮状态检查为Pressed(来自按钮事件参数e)?
  5. e.g。

        e.LeftButton == MouseButtonState.Pressed
    

    修改

    与点号相关。 2 ....

    我建议ToggleButton的原因是因为只有在滑块滑动时才能保持按下状态。否则,使用普通按钮,您可以在按钮单击时打开滑块弹出窗口,但当您移动到滑块上时,按钮将会松开其Pressed状态。

    此外,IsChecked的{​​{1}}属性可以双向绑定到滑块弹出窗口的ToggleButton属性。这样,当用户停止滑动并释放鼠标时,我们可以将弹出窗口的IsOpen设置为false,并且由于双向绑定,将自动取消 togglebutton。