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)?