楽天アフィリエイト

2016年12月12日月曜日

WPF XAML側でボタンをクリック時に非活性

WPFの処理でボタンを連続でクリックした際に,
(クリックイベントで別の画面が開く処理)
開いた画面を閉じたら,再度同じ画面が開くようになっていた。

色々,連続実行されない処理を施してみたものの
・ボタンクリック時にイベントを破棄
⇒コマンドで実行されているため,クリック時イベント前に処理される?
・イベント時にフラグ使用し,フラグで処理判断
⇒イベント中でなくイベント後に再度イベントが発生
これでは解決できず


結果,XAMLでクリックした瞬間に非活性にし
押せなくしようと考えて下記のようにし,解決できました。
<!-- リソース部分 --> <grid .resources=""> <storyboard x:key="testStoryBord"> <objectanimationusingkeyframes storyboard.targetproperty="(Button.IsEnabled)"> <discreteobjectkeyframe keytime="0"> <discreteobjectkeyframe.value> <system:boolean>False</system:boolean> </discreteobjectkeyframe.value> </discreteobjectkeyframe> <discreteobjectkeyframe keytime="0:0:1"> <discreteobjectkeyframe.value> <system:boolean>True</system:boolean> </discreteobjectkeyframe.value> </discreteobjectkeyframe> </objectanimationusingkeyframes> </storyboard> </grid> <!-- ボタン部分 --> <button> &#12288;&#12288;<button triggers> <eventtrigger routedevent="Button.Click"> <beginstoryboard storyboard="{StaticResource testStoryBord}" /> &#12288;&#12288; </eventtrigger> &#12288;&#12288;</button triggers> </button>