示例#1
0
        private void OnViewport3DMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            DicesViewport.ReleaseMouseCapture();

            DicesViewport
            .Triggers
            .Cast <EventTrigger>()
            .First()
            .Actions
            .Cast <BeginStoryboard>()
            .Iter(b => b.Storyboard.Pause(DicesViewport));

            Dice1NumberTextBlock.Text = DiceRoll.FirstRollResult.ToString();
            Dice2NumberTextBlock.Text = DiceRoll.SecondRollResult.ToString();

            WholeMove[]   moveOptions = this.BoardState.MoveOptions(DiceRoll, CurrentPlayer).ToArray();
            DiskElement[] sourceDisks = moveOptions.Select(m => m.Moves.First().GetDiskAtSourceColumn(DisksVisualState)).ToArray();

            foreach (var disk in sourceDisks)
            {
                ObjectAnimationUsingKeyFrames a = new ObjectAnimationUsingKeyFrames();

                var keyTime      = KeyTime.FromTimeSpan(new TimeSpan(0, 0, 0, 0, 0));
                var drawingBrush = Global.GetResource <DrawingBrush>("ChosenDiskBrush");
                a.KeyFrames.Add(new DiscreteObjectKeyFrame(drawingBrush, keyTime));


                var storyBoard = new Storyboard();
                storyBoard.Children.Add(a);
                storyBoard.FillBehavior = FillBehavior.HoldEnd;
                Storyboard.SetTarget(a, disk);
                Storyboard.SetTargetProperty(a, new PropertyPath("Fill"));
                storyBoard.Begin();
            }

            //Disks.Where(d => optionalColumns.Contains(d.Column));
        }
示例#2
0
 private void OnViewport3DMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     DicesViewport.CaptureMouse();
 }