protected override void OnSelected(SelectedEventArgs args) { if (args.Mouse == Mouse.LeftDown || args.Mouse == Mouse.RightDown || args.Mouse == Mouse.RightUp) { return; } if (view.Side == Situation.Side) { base.OnSelected(args); } }
/// <summary> /// 当选中棋子或选中棋盘中某个位置时执行 /// </summary> /// <param name="args"></param> protected virtual void OnSelected(SelectedEventArgs args) { //if (args.Mouse == Mouse.LeftDown || args.Mouse == Mouse.RightDown || args.Mouse == Mouse.RightUp) //{ // return false; //} //return true; //if (!this.OnSelected(args)) //{ // return; //} Console.WriteLine("selected pos:" + args.Position); if (args.Position == 256) { return; } if (currPiece == null && args.Chess == null) { return; } if (args.Chess != null && args.Chess.Side == this.Situation.Side) { //args.Chess.IsMark = true; this.Chessboard.Mark(args.Chess, true); if (currPiece != null && currPiece != args.Chess) { //prePicec.IsMark = false; this.Chessboard.Mark(currPiece, false); } currPiece = args.Chess; } else { //if(args.Chess != null)吃子 if (currPiece != null) { //prePicec.IsMark = false; //currPiece = null; if (this.Move(currPiece, args.Position)) { currPiece = null; } } } }
private void FireSelected(System.Windows.Input.MouseButtonEventArgs e) { if (this.Selected != null) { Mouse mouse = Mouse.LeftUp; if (e.ChangedButton == System.Windows.Input.MouseButton.Right && e.ButtonState == System.Windows.Input.MouseButtonState.Pressed) { mouse = Mouse.RightDown; }else if (e.ChangedButton == System.Windows.Input.MouseButton.Right && e.ButtonState == System.Windows.Input.MouseButtonState.Released) { mouse = Mouse.RightUp; }else if (e.ChangedButton == System.Windows.Input.MouseButton.Left && e.ButtonState == System.Windows.Input.MouseButtonState.Pressed) { mouse = Mouse.LeftDown; } SelectedEventArgs args = new SelectedEventArgs(256, mouse, e.ClickCount, e.MouseDevice.GetPosition(this).X, e.MouseDevice.GetPosition(this).Y, this.Piece); this.Selected(this, args); } }