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は慣れないと違和感を覚えますね。
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2009, HIRO
E-mail