//============================================================================ //! 画面中でマウスの左ボタンが離された private void _ReleaseMouseLeftButton(object iSender, MouseButtonEventArgs iArgs) { if (mDragMember != null) { int member_Index = mDragMember.TabIndex; int current_Team_Index = mOperator.GetMemberJoinTeamIndex(member_Index); try { //パネルに所属させる if (mCurrentCursorPosition != -1) { if (mCurrentCursorPosition == 0) { mOperator.RemoveTeamMember(member_Index); } else { mOperator.AddTeamMember(mCurrentCursorPosition - 1, member_Index); } } //ドラッグ終了 _ClearDrag(); _RefreshDisplay(); //ここで全てのメンバーの所属が決まったら次に進むかを聞いてOKなら進む foreach (var iInfo in mOperator.GetMemberList()) { if (mOperator.GetMemberJoinTeamIndex(iInfo.mMemberID) == -1) { return; } } //1チームしかない場合はエラー if (TeamWrapPanel.Children.Count < 2) { SystemUtility.DisplayErrorDialog("チームが1つ以下です、チームを2チーム以上に分割して下さい"); throw new System.Exception(); } //各チームにメンバーが一人は所属していること foreach (TeamDetailsControl iControl in TeamWrapPanel.Children) { if (iControl.MemberWrapPanel.Children.Count == 0) { SystemUtility.DisplayErrorDialog("一人のメンバーも所属していないチームが存在しています"); throw new System.Exception(); } } //確認 System.Media.SystemSounds.Question.Play(); var result = MessageBox.Show("このチーム編成で先に進みますか?", "確認", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); if (result == MessageBoxResult.Yes) { //予約先へ進む if (mOperator.SetCommitTeam(true)) { SceneManager.GetInstance().AdvanceScene(mNextScene); var stack = TeamWrapPanel.Background; TeamWrapPanel.Background = new SolidColorBrush(SystemUtility.StringToColor("#C8000000")); TeamWrapPanel.UpdateLayout(); mCurrentTeamBitmap = SystemUtility.GetCaptureControlBitmap(TeamWrapPanel); TeamWrapPanel.Background = stack; } } else { throw new System.Exception(); } } catch (System.Exception) { mOperator.RemoveTeamMember(member_Index); _RefreshDisplay(); } } }