2014-03-05 48 views
0

我在我的WPF窗體上有一個按鈕,當我單擊並按住它時,我想要向上或向下拖動鼠標以增加/減少一個值。點擊並按住按鈕,同時拖動鼠標使值變大/變小

這裏有一個解釋我做了(不是最漂亮的)

enter image description here

在第1步:用戶點擊並按住左mousebutton。

第2步:用戶在向上拖動鼠標的同時繼續按住鼠標左鍵。

(我要當用戶拖動過的價值得到更新)

第3步:用戶釋放左mousebutton,停止更新。

在此處,它變得困難:

如何得到前拖的距離。一個計時器過去的事件?

所以我們假設第一步被稱爲a,而用戶釋放鼠標按鈕的部分稱爲b。 我想從前到後從a到b的距離。一個定時器(定時器在拖動時進行更新)

我該如何做到這一點?

+0

使用的MouseDown和MouseUp連接事件?您可以使用MouseEventAgs.GetPosition(http://msdn.microsoft.com/en-us/library/ms591423(v=vs.110).aspx)來計算髮生上下的位置,然後計算差異(即旅行距離)。 –

+0

@PeterRitchie如果我使用這些事件,我無法在拖動時更新該值。只有起始端位置 – Tokfrans

+1

您也可以使用MouseMove附加事件。見http://msdn.microsoft.com/en-us/library/system.windows.input.mouse_attachedevents(v=vs.110).aspx –

回答

-1

你正在尋找一個Slider

<Slider Maximum="10" Minimum="1" Orientation="Vertical"/> 

輸出:

enter image description here

沒有必要推倒重來......

+0

是的,現貨。但我只想要一個按鈕來控制數值,而不是整個滑塊。 – Tokfrans

+0

@Tokfrans「整個滑塊」只是一個「Thumb」和「Track」,或者將滑塊更改爲不包含「Track」,或將「Track」樣式更改爲其他內容。在WPF中,UI元素是「無形」的,適當控件的選擇是基於功能的,而不是外觀。 –