예제 #1
0
        private void ResetStoryboard(double width, bool removeOldStoryboard)
        {
            DoubleKeyFrame item;
            DoubleKeyFrame doubleKeyFrame;
            DoubleKeyFrame item1;

            if (!base.IsIndeterminate)
            {
                return;
            }
            lock (this.lockme)
            {
                double num  = this.CalcContainerAnimStart(width);
                double num1 = this.CalcContainerAnimEnd(width);
                double num2 = this.CalcEllipseAnimWell(width);
                double num3 = this.CalcEllipseAnimEnd(width);
                try
                {
                    VisualState indeterminate = this.GetIndeterminate();
                    if (indeterminate != null && this.indeterminateStoryboard != null)
                    {
                        Storyboard storyboard = this.indeterminateStoryboard.Clone();
                        Timeline   timeline   = storyboard.Children.First <Timeline>((Timeline t) => t.Name == "MainDoubleAnim");
                        timeline.SetValue(DoubleAnimation.FromProperty, num);
                        timeline.SetValue(DoubleAnimation.ToProperty, num1);
                        string[] strArrays = new string[] { "E1", "E2", "E3", "E4", "E5" };
                        for (int i = 0; i < (int)strArrays.Length; i++)
                        {
                            string str = strArrays[i];
                            DoubleAnimationUsingKeyFrames doubleAnimationUsingKeyFrame = (DoubleAnimationUsingKeyFrames)storyboard.Children.First <Timeline>((Timeline t) => t.Name == string.Concat(str, "Anim"));
                            if (str != "E1")
                            {
                                item           = doubleAnimationUsingKeyFrame.KeyFrames[2];
                                doubleKeyFrame = doubleAnimationUsingKeyFrame.KeyFrames[3];
                                item1          = doubleAnimationUsingKeyFrame.KeyFrames[4];
                            }
                            else
                            {
                                item           = doubleAnimationUsingKeyFrame.KeyFrames[1];
                                doubleKeyFrame = doubleAnimationUsingKeyFrame.KeyFrames[2];
                                item1          = doubleAnimationUsingKeyFrame.KeyFrames[3];
                            }
                            item.Value           = num2;
                            doubleKeyFrame.Value = num2;
                            item1.Value          = num3;
                            item.InvalidateProperty(DoubleKeyFrame.ValueProperty);
                            doubleKeyFrame.InvalidateProperty(DoubleKeyFrame.ValueProperty);
                            item1.InvalidateProperty(DoubleKeyFrame.ValueProperty);
                            doubleAnimationUsingKeyFrame.InvalidateProperty(Storyboard.TargetPropertyProperty);
                            doubleAnimationUsingKeyFrame.InvalidateProperty(Storyboard.TargetNameProperty);
                        }
                        FrameworkElement templateChild = (FrameworkElement)base.GetTemplateChild("ContainingGrid");
                        if (removeOldStoryboard && indeterminate.Storyboard != null)
                        {
                            indeterminate.Storyboard.Stop(templateChild);
                            indeterminate.Storyboard.Remove(templateChild);
                        }
                        indeterminate.Storyboard = storyboard;
                        if (indeterminate.Storyboard != null)
                        {
                            indeterminate.Storyboard.Begin(templateChild, true);
                        }
                    }
                }
                catch (Exception exception)
                {
                }
            }
        }
예제 #2
0
 private void ResetStoryboard(double width)
 {
     lock (this)
     {
         double num  = this.CalcContainerAnimStart(width);
         double num2 = this.CalcContainerAnimEnd(width);
         double num3 = this.CalcEllipseAnimWell(width);
         double num4 = this.CalcEllipseAnimEnd(width);
         try
         {
             VisualState indeterminate = this.GetIndeterminate();
             if (indeterminate != null)
             {
                 Storyboard storyboard = indeterminate.Storyboard.Clone();
                 Timeline   timeline   = storyboard.Children.First <Timeline>(t => t.Name == "MainDoubleAnim");
                 timeline.SetValue(DoubleAnimation.FromProperty, num);
                 timeline.SetValue(DoubleAnimation.ToProperty, num2);
                 string[] strArray3 = new string[] { "E1", "E2", "E3", "E4", "E5" };
                 for (int i = 0; i < strArray3.Length; i++)
                 {
                     DoubleKeyFrame        frame;
                     DoubleKeyFrame        frame2;
                     DoubleKeyFrame        frame3;
                     Func <Timeline, bool> predicate = null;
                     string elemName = strArray3[i];
                     if (predicate == null)
                     {
                         predicate = t => t.Name == (elemName + "Anim");
                     }
                     DoubleAnimationUsingKeyFrames frames = (DoubleAnimationUsingKeyFrames)storyboard.Children.First <Timeline>(predicate);
                     if (elemName == "E1")
                     {
                         frame  = frames.KeyFrames[1];
                         frame2 = frames.KeyFrames[2];
                         frame3 = frames.KeyFrames[3];
                     }
                     else
                     {
                         frame  = frames.KeyFrames[2];
                         frame2 = frames.KeyFrames[3];
                         frame3 = frames.KeyFrames[4];
                     }
                     frame.Value  = num3;
                     frame2.Value = num3;
                     frame3.Value = num4;
                     frame.InvalidateProperty(DoubleKeyFrame.ValueProperty);
                     frame2.InvalidateProperty(DoubleKeyFrame.ValueProperty);
                     frame3.InvalidateProperty(DoubleKeyFrame.ValueProperty);
                     frames.InvalidateProperty(Storyboard.TargetPropertyProperty);
                     frames.InvalidateProperty(Storyboard.TargetNameProperty);
                 }
                 indeterminate.Storyboard.Remove();
                 indeterminate.Storyboard = storyboard;
                 if (base.IsIndeterminate)
                 {
                     indeterminate.Storyboard.Begin((FrameworkElement)base.GetTemplateChild("ContainingGrid"), true);
                 }
             }
         }
         catch (Exception)
         {
         }
     }
 }