2009-09-24 5 views
3

Slider 컨트롤을 사용하려고 할 때 MouseLeftButtonDownMouseLeftButtonUp을 듣고 싶습니다. 두 가지 이벤트에 대한 핸들러를 설정했습니다. MouseLeftButtonUp은 예상대로 작동합니다. MouseLeftButtonDown은 전혀 제기되지 않습니다.Slider MouseLeftButtonDown이 작동하지 않습니까?

왜 그런가?

저는 인터넷 검색을 조금 해봤지만 WPF가 실행되지 않는 것으로 보입니다. 해결책 중 하나 (in this post)는 silverlight에서 지원하지 않는 이벤트의 미리보기 버전을 사용했습니다.

내가 볼 수없는 간단한 해결책이 있습니까?

감사 J

답변

11

슬라이더/다운 이벤트를 마우스를 처리하기 때문에 발생합니다. 내부적으로는 2 개의 RepeatButton과 중간의 엄지 손가락으로 구현됩니다. 슬라이더의 왼쪽이나 오른쪽을 클릭하면 마우스 이벤트가 RepeatButtons에 의해 처리되고 사용자가 가져 가지 않습니다.

처리 된 이벤트를 처리하려는 경우 AddHandler() 메서드를 사용할 수 있습니다.

<Slider Width="100" 
     VerticalAlignment="Top" 
     Minimum="0" 
     Maximum="100" 
     Name="sl" /> 

C#

public partial class MainPage : UserControl 
{ 
    public MainPage() 
    { 
    InitializeComponent(); 

    sl.AddHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler(Slider_MouseLeftButtonDown), true); 
    sl.AddHandler(MouseLeftButtonUpEvent, new MouseButtonEventHandler(Slider_MouseLeftButtonUp), true); 
    } 

    private void Slider_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
    { 
    } 

    private void Slider_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
    { 
    } 
} 

WPF 상황에서 거의 동일 (이름의 작은 차이)이다

XAML : 여기 실버 예이다.

+0

내가 필요한 것. 감사. 이것은 답변으로 larked해야합니다! – NER1808

관련 문제