Kinect を使用して、C# と WPF を使用して画像表示アプリケーションを開発しています。ユーザーが両手を頭の上に置くと、Messagebox
ユーザーに本当に終了したいかどうかを尋ねるメッセージが表示されます。
//Quit if both hands above head
if (skeleton.Joints[JointType.HandLeft].Position.Y > skeleton.Joints[JointType.Head].Position.Y &&
skeleton.Joints[JointType.HandRight].Position.Y > skeleton.Joints[JointType.Head].Position.Y)
{
pause = true;
quit();
}
機能は次のquit()
とおりです。
private void quit()
{
MessageBoxButton button = MessageBoxButton.YesNo;
MessageBoxImage image = MessageBoxImage.Warning;
MessageBoxResult result = MessageBox.Show("Are you sure you want to quit?", "Close V'Me :(", button, image);
if (result == MessageBoxResult.Yes) window.Close();
else if (result == MessageBoxResult.No)
{
pause = false;
}
}
このpause
変数は、MessageBox
がまだアクティブな間、ジェスチャの認識を停止するために使用されます。( pause
=false
ジェスチャ認識がアクティブであることを意味します。それ以外の場合はノーです。)
したがって、次の 2 つの問題があります。
が2
MessageBox
回表示されます。Yes
それらのいずれかをクリックすると、window
が閉じます。動作は問題ありませんが、2 つのウィンドウは必要ありません。をクリック
No
すると、別のMessageBox
画面が表示されます。このボックスをクリックNo
すると、別のボックスが開きます。これは、連続No
してクリックするたびに発生します。約 5 ~ 6 回表示された後、必要な動作が得られます。つまり、pause
変数の値が に変更false
され、他のジェスチャの認識がアクティブになります。
私は正確に何を間違っていますか?すべてを停止して、ユーザーがいずれかのオプションをクリックするのを待つにはどうすればよいですか? また、なぜMessageBox
複数回表示されるのですか (最初は 2 回、クリックするとそれ以上No
)?