C# 单击并按住按钮,同时拖动鼠标使值变大/变小
我的WPF表单上有一个按钮,当我点击并按住它时,我希望能够上下拖动鼠标来增加/减少一个值 这是我的解释(不是最漂亮的) 在步骤1:用户单击并按住鼠标左键 步骤2:用户继续按住鼠标左键,同时向上拖动鼠标 (我希望在用户拖动时更新该值) 步骤3:用户释放左鼠标按钮,停止更新 这里是困难的地方: 如何获取从计时器已过事件拖动的距离 假设第一步称为a,用户释放鼠标按钮时的部分称为b。 我想获得从a到b的距离,例如a计时器(拖动时使其更新的计时器) 我将如何完成此任务?您正在寻找一个:C# 单击并按住按钮,同时拖动鼠标使值变大/变小,c#,wpf,C#,Wpf,我的WPF表单上有一个按钮,当我点击并按住它时,我希望能够上下拖动鼠标来增加/减少一个值 这是我的解释(不是最漂亮的) 在步骤1:用户单击并按住鼠标左键 步骤2:用户继续按住鼠标左键,同时向上拖动鼠标 (我希望在用户拖动时更新该值) 步骤3:用户释放左鼠标按钮,停止更新 这里是困难的地方: 如何获取从计时器已过事件拖动的距离 假设第一步称为a,用户释放鼠标按钮时的部分称为b。 我想获得从a到b的距离,例如a计时器(拖动时使其更新的计时器) 我将如何完成此任务?您正在寻找一个: 输出: 无
输出:
无需重新设计控制盘…是否使用MouseDown和MouseUp附加的事件?您可以使用MouseEventAgs.GetPosition()计算上下移动发生的位置,然后计算差异(即移动距离)。@PeterRitchie如果使用这些事件,则在拖动时无法更新该值。只有开始-结束位置您还可以使用MouseMove附加事件。看@PeterRitchie嗯,这可以用。让我试试看。@PeterRitchie啊,这就成功了。我用mousedown得到原点,然后我更新了另一个点,这个点被mousemove更新了,然后做了一些简单的数学运算。那很有效,没错。但我只想要一个按钮来控制值,而不是整个滑块。@Tokfrans“整个滑块”只是一个
拇指和一个轨迹
,或者将滑块更改为不包含轨迹
,或者将轨迹
样式更改为其他样式。在WPF中,UI元素是无外观的,正确控件的选择基于功能,而不是外观。
<Slider Maximum="10" Minimum="1" Orientation="Vertical"/>