ユーザーがInkManagerを使用して描画できるキャンバスを備えた Windows ストア アプリがあります。下部のアプリ バーには、色、ストロークの太さなどを選択するためのボタンがいくつかあります。これらは、たとえばカラー ピッカーを含むフライアウト要素を表示することによって実装されます。
<Page.BottomAppBar>
<CommandBar IsSticky="True">
<AppBarButton ...>
<AppBarButton.Flyout>
<Flyout>
<ColorPicker .../>
</Flyout>
</AppBarButton.Flyout>
</AppBarButton>
</CommandBar>
</Page>
問題は、ほとんどのユーザー (私を含む) が小さな問題につまずき続けることです。ボタンをタップすると、フライアウトが開き、色を選択できます。次に、描画を開始し、キャンバス上で指 (またはスタイラス) を動かして、新しい色でストロークを作成することを期待します。ただし、タッチ イベントはポップアップを閉じるだけです。フライアウト要素が何らかの形でポインター イベントをキャプチャしているようです (ただし、UIElement ではありません)。
この問題を防ぐ方法はありますか? 理想的には、キャンバスに触れるとフライアウトが閉じられますが、同じタッチ イベントがキャンバスによって処理されるため、すぐに描画を開始できます。