2015-09-21 53 views
0

我正在開發Windows Universal App(Windows 8.1 + Winwdows Phone 8.1)。我可以在Button做檢測Click事件:Button touchDown和Button touchUp事件

<Button x:Name="menuButton" Click="menuButton_Click" /> 

我想也檢測到「新聞」事件,並在該按鈕的「釋放」事件。當按下按鈕時,我必須在我的應用程序中更改圖像。當按鈕被釋放時,圖像返回到它的init狀態。我檢查了與Button類有關的方法,但似乎沒有任何東西可以幫助我。先謝謝你。

回答

1

你要實現它,這樣

public class MyButton : Button 
{ 
    public event RoutedEventHandler MyPointerPressed; 
    public event RoutedEventHandler MyPointerReleased; 
    public event RoutedEventHandler MyPointerExited; 
    public event RoutedEventHandler MyPointerMoved; 

    public event EventHandler HoldingStarted; 

    protected override void OnPointerPressed(PointerRoutedEventArgs e) 
    { 
     base.OnPointerPressed(e); 

     MyPointerPressed?.Invoke(this, e); 
    } 

    protected override void OnPointerMoved(PointerRoutedEventArgs e) 
    { 
     base.OnPointerMoved(e); 

     MyPointerMoved?.Invoke(this, e); 
    } 

    protected override void OnPointerReleased(PointerRoutedEventArgs e) 
    { 
     base.OnPointerReleased(e); 

     MyPointerReleased?.Invoke(this, e); 
    } 

    protected override void OnPointerExited(PointerRoutedEventArgs e) 
    { 
     base.OnPointerExited(e); 

     MyPointerExited?.Invoke(this, e); 
    } 

    protected override void OnHolding(HoldingRoutedEventArgs e) 
    { 
     if (e.HoldingState == HoldingState.Started) 
     { 
      HoldingStarted?.Invoke(this, new EventArgs()); 
      return; 
     } 

     base.OnHolding(e); 
    } 
}