WPFのButtonコントロールはClickModeプロパティを使用して、Clickイベントの発生タイミングを変更することが可能です。
ClickModeで指定可能な値はRelease, Press, Hoverがあります。規定値はReleaseです。
それぞれの動作は下記の通りです。
Release
ボタンを押して離したときにClickイベントが発生します。
Press
ボタンを押すとすぐにClickイベントが発生します。
Hover
マウスをコントロールの上に置いたときに Click イベントが発生します。
下図のようにボタンを3つ配置して、それぞれのClickModeを割り当てて実験してみました。

ClickMode設定後のXAMLは下記の通りです。
<Button Height="23" HorizontalAlignment="Left"
Margin="12,12,0,0" Name="Button1"
VerticalAlignment="Top" Width="75" ClickMode="Release">Button1</Button>
<Button Height="23" HorizontalAlignment="Left"
Margin="12,41,0,0" Name="Button2"
VerticalAlignment="Top" Width="75" ClickMode="Press">Button2</Button>
<Button Height="23" HorizontalAlignment="Left"
Margin="13,70,0,0" Name="Button3"
VerticalAlignment="Top" Width="75" ClickMode="Hover">Button3</Button>
VB.NETのソースコードは下記の通り
Partial Public Class Window1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
MessageBox.Show("ClickMode:" + Button1.ClickMode.ToString())
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
MessageBox.Show("ClickMode:" + Button2.ClickMode.ToString())
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button3.Click
MessageBox.Show("ClickMode:" + Button3.ClickMode.ToString())
End Sub
End Class
上記を実行すると、ボタンクリック時にクリックされたボタンのClickModeをメッセージボックスに表示します。
それぞれのイベントが発生するタイミングを是非体感してみてください。
ちなみに、従来のWindowsアプリケーションではクリックの動作はReleaseが該当します。
PressやHoverは慣れないと違和感を覚えますね。