Пример #1
0
        private void SetupLandscapeLayout()
        {
            SecondGrid.SetValue(Grid.RowProperty, 0);
            SecondGrid.SetValue(Grid.ColumnProperty, 1);

            FirstGrid.SetValue(Grid.RowSpanProperty, 2);
            FirstGrid.SetValue(Grid.ColumnSpanProperty, 1);

            SecondGrid.SetValue(Grid.RowSpanProperty, 2);
            SecondGrid.SetValue(Grid.ColumnSpanProperty, 1);
        }
Пример #2
0
        private void Confirm_Click(object Sender, RoutedEventArgs E)
        {
            if (!IsSelectingAi)
            {
                if ((bool)AiGrid.Tag)
                {
                    var MarginAnimation = new ThicknessAnimation()
                    {
                        From = FirstGrid.Margin,
                        To   = new Thickness(
                            FirstGrid.Margin.Left - 50,
                            FirstGrid.Margin.Top,
                            FirstGrid.Margin.Right + 50,
                            FirstGrid.Margin.Bottom
                            ),
                        Duration       = TimeSpan.FromSeconds(0.25),
                        EasingFunction = new ExponentialEase()
                        {
                            EasingMode = EasingMode.EaseOut
                        }
                    };
                    MarginAnimation.Completed += delegate
                    {
                        AiStack.Children.Clear();
                        foreach (var Ai in App.AiList)
                        {
                            if (ChosenAi.Contains(Ai))
                            {
                                continue;
                            }
                            var AiItem = new AiItem()
                            {
                                Height = 350, Width = 250
                            };
                            AiItem.Init(Ai);
                            AiItem.SelectSyncAction = delegate(AI Target)
                            {
                                SelectedAi = Target;
                                AiStack.Children.OfType <AiItem>()
                                .Where(O => !ReferenceEquals(O.Ai, Target))
                                .ToList().ForEach(O => O.Select(false));
                            };
                            AiStack.Children.Add(AiItem);
                        }

                        FirstGrid.Visibility  = Visibility.Hidden;
                        SecondGrid.Visibility = Visibility.Visible;
                        SecondGrid.BeginAnimation(OpacityProperty, new DoubleAnimation()
                        {
                            From           = 0,
                            To             = 1,
                            Duration       = TimeSpan.FromSeconds(0.25),
                            EasingFunction = new ExponentialEase()
                            {
                                EasingMode = EasingMode.EaseIn
                            }
                        });
                        SecondGrid.BeginAnimation(MarginProperty, new ThicknessAnimation()
                        {
                            From = new Thickness(
                                SecondGrid.Margin.Left + 50,
                                SecondGrid.Margin.Top,
                                SecondGrid.Margin.Right - 50,
                                SecondGrid.Margin.Bottom
                                ),
                            To             = SecondGrid.Margin,
                            Duration       = TimeSpan.FromSeconds(0.25),
                            EasingFunction = new ExponentialEase()
                            {
                                EasingMode = EasingMode.EaseIn
                            }
                        });
                    };
                    FirstGrid.BeginAnimation(OpacityProperty, new DoubleAnimation()
                    {
                        From           = 1,
                        To             = 0,
                        Duration       = TimeSpan.FromSeconds(0.25),
                        EasingFunction = new ExponentialEase()
                        {
                            EasingMode = EasingMode.EaseOut
                        }
                    });
                    FirstGrid.BeginAnimation(MarginProperty, MarginAnimation);
                    IsSelectingAi = true;
                }
                else
                {
                    if (!SelfChoosable)
                    {
                        MessageBox.Show("您已经将自己加入某个角色槽了。若要重新选择角色槽,请先从原来的角色槽退出。",
                                        "选择加入者", MessageBoxButton.OK, MessageBoxImage.Information);
                        return;
                    }

                    IsSelectingAi = false;
                    Canceled      = false;
                    this.Close();
                }
            }
            else
            {
                if (SelectedAi == null)
                {
                    MessageBox.Show("请先选择一个AI角色。", "选择加入者",
                                    MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }
                IsSelectingAi = true;
                Canceled      = false;
                this.Close();
            }
        }