Ejemplo n.º 1
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:

            #line 2 "..\..\..\ImageShowPage.xaml"
                ((SelfHelpSystem.ImageShowPage)(target)).Loaded += new System.Windows.RoutedEventHandler(this.Page_Loaded);

            #line default
            #line hidden

            #line 2 "..\..\..\ImageShowPage.xaml"
                ((SelfHelpSystem.ImageShowPage)(target)).Unloaded += new System.Windows.RoutedEventHandler(this.Page_Unloaded);

            #line default
            #line hidden
                return;

            case 2:

            #line 10 "..\..\..\ImageShowPage.xaml"
                ((System.Windows.Controls.WrapPanel)(target)).MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.WrapPanel_MouseDown);

            #line default
            #line hidden
                return;

            case 3:
                this.mainp = ((Transitionals.Controls.TransitionElement)(target));
                return;
            }
            this._contentLoaded = true;
        }
Ejemplo n.º 2
0
        protected override void BeginTransition3D(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent, Viewport3D viewport)
        {
            Brush clone = CreateBrush(oldContent);

            Size size = transitionElement.RenderSize;
            MeshGeometry3D leftDoor = CreateMesh(new Point3D(),
               new Vector3D(size.Width / 2, 0, 0),
               new Vector3D(0, size.Height, 0),
               1,
               1,
               new Rect(0, 0, 0.5, 1));

            GeometryModel3D leftDoorGeometry = new GeometryModel3D();
            leftDoorGeometry.Geometry = leftDoor;
            leftDoorGeometry.Material = new DiffuseMaterial(clone);

            AxisAngleRotation3D leftRotation = new AxisAngleRotation3D(new Vector3D(0, 1, 0), 0);
            leftDoorGeometry.Transform = new RotateTransform3D(leftRotation);

            GeometryModel3D rightDoorGeometry = new GeometryModel3D();
            MeshGeometry3D rightDoor = CreateMesh(new Point3D(size.Width / 2, 0, 0),
                 new Vector3D(size.Width / 2, 0, 0),
                 new Vector3D(0, size.Height, 0),
                 1,
                 1,
                 new Rect(0.5, 0, 0.5, 1));

            rightDoorGeometry.Geometry = rightDoor;
            rightDoorGeometry.Material = new DiffuseMaterial(clone);

            AxisAngleRotation3D rightRotation = new AxisAngleRotation3D(new Vector3D(0, 1, 0), 0);
            rightDoorGeometry.Transform = new RotateTransform3D(rightRotation, size.Width, 0, 0);


            Model3DGroup doors = new Model3DGroup();
            doors.Children.Add(leftDoorGeometry);
            doors.Children.Add(rightDoorGeometry);

            ModelVisual3D model = new ModelVisual3D();
            model.Content = doors;

            // Replace old content in visual tree with new 3d model
            transitionElement.HideContent(oldContent);
            viewport.Children.Add(model);

            DoubleAnimation da = new DoubleAnimation(90 - 0.5 * FieldOfView, Duration);
            leftRotation.BeginAnimation(AxisAngleRotation3D.AngleProperty, da);

            da = new DoubleAnimation(-(90 - 0.5 * FieldOfView), Duration);
            rightRotation.BeginAnimation(AxisAngleRotation3D.AngleProperty, da);

            da = new DoubleAnimation(0, Duration);
            da.Completed += delegate
            {
                EndTransition(transitionElement, oldContent, newContent);
            };
            clone.BeginAnimation(Brush.OpacityProperty, da);
        }
Ejemplo n.º 3
0
 protected internal override void BeginTransition(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
 {
     DoubleAnimation da = new DoubleAnimation(0, Duration);
     da.Completed += delegate
     {
         EndTransition(transitionElement, oldContent, newContent);
     };
     oldContent.BeginAnimation(UIElement.OpacityProperty, da);
 }
Ejemplo n.º 4
0
        protected override void BeginTransition3D(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent, Viewport3D viewport)
        {
            Size size = transitionElement.RenderSize;

            // Create a rectangle
            MeshGeometry3D mesh = CreateMesh(new Point3D(),
                new Vector3D(size.Width, 0, 0),
                new Vector3D(0, size.Height, 0),
                1,
                1,
                new Rect(0, 0, 1, 1));
            
            GeometryModel3D geometry = new GeometryModel3D();
            geometry.Geometry = mesh;
            VisualBrush clone = new VisualBrush(oldContent);
            geometry.Material = new DiffuseMaterial(clone);

            ModelVisual3D model = new ModelVisual3D();
            model.Content = geometry;

            // Replace old content in visual tree with new 3d model
            transitionElement.HideContent(oldContent);
            viewport.Children.Add(model);

            Vector3D axis;
            Point3D center = new Point3D();
            switch (Direction)
            {
                case RotateDirection.Left:
                    axis = new Vector3D(0, 1, 0);
                    break;
                case RotateDirection.Right:
                    axis = new Vector3D(0, -1, 0);
                    center = new Point3D(size.Width, 0, 0);
                    break;
                case RotateDirection.Up:
                    axis = new Vector3D(-1, 0, 0);
                    break;
                default:
                    axis = new Vector3D(1, 0, 0);
                    center = new Point3D(0, size.Height, 0);
                    break;
            }
            AxisAngleRotation3D rotation = new AxisAngleRotation3D(axis, 0);
            model.Transform = new RotateTransform3D(rotation, center);

            DoubleAnimation da = new DoubleAnimation(0, Duration);
            clone.BeginAnimation(Brush.OpacityProperty, da);

            da = new DoubleAnimation(90, Duration);
            da.Completed += delegate
            {
                EndTransition(transitionElement, oldContent, newContent);
            };
            rotation.BeginAnimation(AxisAngleRotation3D.AngleProperty, da);
        }
Ejemplo n.º 5
0
 void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
 {
     switch (connectionId)
     {
     case 1:
         this.TransitionBox = ((Transitionals.Controls.TransitionElement)(target));
         return;
     }
     this._contentLoaded = true;
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Initializes the control and child controls.
        /// </summary>
        private void Initialize()
        {
            // Access internal children, which forces instantiation of the generator
            UIElementCollection children = base.InternalChildren;

            // We are an items host
            IsItemsHost = true; // TODO: Should do based on parent container or selector?

            // Create the transition element
            transitionElement = new TransitionElement();
        }
Ejemplo n.º 7
0
        private static object CoerceTransition(object element, object value)
        {
            Debug.WriteLineIf(TraceSwitches.Transitions.TraceVerbose, "TransitionElement - CoerceTransition Entry");
            TransitionElement te = (TransitionElement)element;

            if (te.IsTransitioning)
            {
                Debug.WriteLineIf(TraceSwitches.Transitions.TraceVerbose, "TransitionElement - CoerceTransition returning active transition");
                return(te.activeTransition);
            }
            Debug.WriteLineIf(TraceSwitches.Transitions.TraceVerbose, "TransitionElement - CoerceTransition returning normal current transition");
            return(value);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Handles a change to the Content property.
        /// </summary>
        private static void OnContentChanged(object element, DependencyPropertyChangedEventArgs e)
        {
            Debug.WriteLineIf(TraceSwitches.Transitions.TraceVerbose, "TransitionElement - OnContentChanged Entry");
            TransitionElement te = element as TransitionElement;

            if (te != null)
            {
                ContentPresenter contentPresenter = te.Content as ContentPresenter;
                FrameworkElement parentFE         = te.Parent as FrameworkElement;
                Debug.WriteLineIf(TraceSwitches.Transitions.TraceVerbose, "TransitionElement - OnContentChanged Beginning Transition");
                te.BeginTransition();
            }
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Begins the transition.
 /// </summary>
 /// <param name="transitionElement">The transition element.</param>
 /// <param name="oldContent">The old content.</param>
 /// <param name="newContent">The new content.</param>
 protected override void BeginTransition(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
 {
     if (SlideDirection == SlideDirection.Back)
     {
         Slide(transitionElement, oldContent, 0, 1.0, null);
         Slide(transitionElement, newContent, -1.0, 0.0, () => EndTransition(transitionElement, oldContent, newContent));
     }
     else
     {
         Slide(transitionElement, oldContent, 0.0, -1.0, null);
         Slide(transitionElement, newContent, 1.0, 0.0, () => EndTransition(transitionElement, oldContent, newContent));
     }
 }
Ejemplo n.º 10
0
        // Don't update direct content until done transitioning
        private static object CoerceContent(object element, object value)
        {
            Debug.WriteLineIf(TraceSwitches.Transitions.TraceVerbose, "TransitionElement - CoerceContent Entry");
            TransitionElement te = element as TransitionElement;

            if (te != null && te.IsTransitioning)
            {
                Debug.WriteLineIf(TraceSwitches.Transitions.TraceVerbose, "TransitionElement - CoerceContent returning te.CurrentContentPresenter.Content");
                return(te.NewContentPresenter.Content);
            }
            Debug.WriteLineIf(TraceSwitches.Transitions.TraceVerbose, "TransitionElement - CoerceContent returning normal value");
            return(value);
        }
Ejemplo n.º 11
0
        // Setup the Viewport 3D
        protected internal sealed override void BeginTransition(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
        {
            Viewport3D viewport = new Viewport3D();
            viewport.IsHitTestVisible = false;

            viewport.Camera = CreateCamera(transitionElement, FieldOfView);
            viewport.ClipToBounds = false;
            ModelVisual3D light = new ModelVisual3D();
            light.Content = Light;
            viewport.Children.Add(light);

            transitionElement.Children.Add(viewport);
            BeginTransition3D(transitionElement, oldContent, newContent, viewport);
        }
Ejemplo n.º 12
0
        // Force clip to be true if the active Transition requires it
        private static object CoerceClipToBounds(object element, object value)
        {
            TransitionElement te = (TransitionElement)element;
            bool clip            = (bool)value;

            if (!clip && te.IsTransitioning)
            {
                Transition transition = te.Transition;
                if (transition.ClipToBounds)
                {
                    return(true);
                }
            }
            return(value);
        }
        protected internal override void BeginTransition(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
        {
            Storyboard oldStoryboard = OldContentStoryboard;
            Storyboard newStoryboard = NewContentStoryboard;

            if (oldStoryboard != null || newStoryboard != null)
            {
                oldContent.Style = OldContentStyle;
                newContent.Style = NewContentStyle;

                // Flag to determine when both storyboards are done
                bool done = oldStoryboard == null || newStoryboard == null;

                if (oldStoryboard != null)
                {
                    oldStoryboard = oldStoryboard.Clone();
                    oldContent.SetValue(OldContentStoryboardProperty, oldStoryboard);
                    oldStoryboard.Completed += delegate
                    {
                        if (done)
                            EndTransition(transitionElement, oldContent, newContent);
                        done = true;
                    };
                    oldStoryboard.Begin(oldContent, true);
                }

                if (newStoryboard != null)
                {
                    newStoryboard = newStoryboard.Clone();
                    newContent.SetValue(NewContentStoryboardProperty, newStoryboard);
                    newStoryboard.Completed += delegate
                    {
                        if (done)
                            EndTransition(transitionElement, oldContent, newContent);
                        done = true;
                    };
                    newStoryboard.Begin(newContent, true);
                }
            }
            else
            {
                EndTransition(transitionElement, oldContent, newContent);
            }
        }
Ejemplo n.º 14
0
        protected internal override void BeginTransition(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
        {
            TranslateTransform tt = new TranslateTransform(StartPoint.X * transitionElement.ActualWidth, StartPoint.Y * transitionElement.ActualHeight);

            if (this.IsNewContentTopmost)
            {
                newContent.RenderTransform = tt;
            }
            else
            {
                oldContent.RenderTransform = tt;
            }

            DoubleAnimation da = new DoubleAnimation(EndPoint.X * transitionElement.ActualWidth, Duration);
            tt.BeginAnimation(TranslateTransform.XProperty, da);

            da.To = EndPoint.Y * transitionElement.ActualHeight;
            da.Completed += delegate
            {
                EndTransition(transitionElement, oldContent, newContent);
            };
            tt.BeginAnimation(TranslateTransform.YProperty, da);
        }
Ejemplo n.º 15
0
 protected virtual void BeginTransition3D(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent, Viewport3D viewport)
 {
     EndTransition(transitionElement, oldContent, newContent);
 }
        protected override void OnTransitionEnded(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
        {
            Storyboard oldStoryboard = (Storyboard)oldContent.GetValue(OldContentStoryboardProperty);
            if (oldStoryboard != null)
                oldStoryboard.Stop(oldContent);
            oldContent.ClearValue(ContentPresenter.StyleProperty);

            Storyboard newStoryboard = (Storyboard)newContent.GetValue(NewContentStoryboardProperty);
            if (newStoryboard != null)
                newStoryboard.Stop(newContent);
            newContent.ClearValue(ContentPresenter.StyleProperty);
        }
Ejemplo n.º 17
0
 //Transitions can override this to perform cleanup at the end of the transition
 protected virtual void OnTransitionEnded(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
 {
 }
Ejemplo n.º 18
0
 protected override void OnTransitionEnded(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
 {
     oldContent.BeginAnimation(UIElement.OpacityProperty, null);
 }
Ejemplo n.º 19
0
        protected override void BeginTransition3D(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent, Viewport3D viewport)
        {
            Size size = transitionElement.RenderSize;

            Point3D centerPoint;
            if (MouseAsCenter)
            {
                Point mouse2D = Mouse.GetPosition(transitionElement);
                centerPoint = new Point3D(mouse2D.X, mouse2D.Y, 0.5 * size.Width);
            }
            else
            {
                centerPoint = new Point3D(0.5 * size.Width, 0.5 * size.Height, 0.5 * size.Width);
            }

            int xparticles = 10, yparticles = 10;

            if (size.Width > size.Height)
            {
                yparticles = (int)(xparticles * size.Height / size.Width);
            }
            else
            {
                xparticles = (int)(yparticles * size.Width / size.Height);
            }

            double sx = 1.0 / xparticles, sy = 1.0 / yparticles;
            Vector3D u = new Vector3D(size.Width * sx, 0, 0);
            Vector3D v = new Vector3D(0, size.Height * sy, 0);
            Brush cloneBrush = CreateBrush(oldContent);
            Material clone = new DiffuseMaterial(cloneBrush);

            Vector3D[] velocities = new Vector3D[xparticles * yparticles];
            Vector3D[] angularVelocities = new Vector3D[xparticles * yparticles];
            Point3D[] centers = new Point3D[xparticles * yparticles];

            Point3DCollection positions = new Point3DCollection(4 * xparticles * yparticles);
            PointCollection textures = new PointCollection(4 * xparticles * yparticles);
            Int32Collection triangles = new Int32Collection(6 * xparticles * yparticles);
            int n = 0;
            for (int i = 0; i < xparticles; i++)
            {
                for (int j = 0; j < yparticles; j++)
                {
                    Point3D topleft = (Point3D)(i * u + j * v);
                    positions.Add(topleft);
                    positions.Add(topleft + u);
                    positions.Add(topleft + u + v);
                    positions.Add(topleft + v);

                    textures.Add(new Point(i * sx, j * sy));
                    textures.Add(new Point((i + 1) * sx, j * sy));
                    textures.Add(new Point((i + 1) * sx, (j + 1) * sy));
                    textures.Add(new Point(i * sx, (j + 1) * sy));


                    triangles.Add(n);
                    triangles.Add(n + 2);
                    triangles.Add(n + 1);

                    triangles.Add(n);
                    triangles.Add(n + 3);
                    triangles.Add(n + 2);

                    Vector3D f0 = positions[n] - centerPoint;
                    Vector3D f1 = positions[n + 1] - centerPoint;
                    Vector3D f2 = positions[n + 2] - centerPoint;
                    Vector3D f3 = positions[n + 3] - centerPoint;

                    f0 = f0 / f0.LengthSquared;
                    f1 = f1 / f1.LengthSquared;
                    f2 = f2 / f2.LengthSquared;
                    f3 = f3 / f3.LengthSquared;

                    velocities[n / 4] = 2 * size.Width * (f0 + f1 + f2 + f3);

                    Point3D center = centers[n / 4] = (Point3D)((i + 0.5) * u + (j + 0.5) * v);
                    angularVelocities[n / 4] = 200 * (Vector3D.CrossProduct(f0, positions[n] - center) +
                        Vector3D.CrossProduct(f1, positions[n + 1] - center) +
                        Vector3D.CrossProduct(f2, positions[n + 2] - center) +
                        Vector3D.CrossProduct(f3, positions[n + 3] - center));

                    n += 4;
                }
            }

            MeshGeometry3D mesh = new MeshGeometry3D();
            mesh.Positions = positions;
            mesh.TextureCoordinates = textures;
            mesh.TriangleIndices = triangles;

            GeometryModel3D geometryModel = new GeometryModel3D(mesh, clone);
            geometryModel.BackMaterial = clone;
            ModelVisual3D model = new ModelVisual3D();
            model.Content = geometryModel;

            // Replace old content in visual tree with new 3d model
            transitionElement.HideContent(oldContent);
            viewport.Children.Add(model);

            DispatcherTimer timer = new DispatcherTimer();
            int t = 0;
            double opacityDelta = 1.0 / (Duration.TimeSpan.Seconds * 60.0);
            timer.Interval = TimeSpan.FromSeconds(1.0 / 60.0);
            timer.Tick += delegate
            {
                t++;
                cloneBrush.Opacity = 1 - t * opacityDelta;
                if (cloneBrush.Opacity < opacityDelta)
                {
                    timer.Stop();
                    EndTransition(transitionElement, oldContent, newContent);
                    return;
                }
                mesh.Positions = null;
                AxisAngleRotation3D axisAngle = new AxisAngleRotation3D();
                RotateTransform3D rotation = new RotateTransform3D(axisAngle, new Point3D());
                for (int i = 0; i < positions.Count; i += 4)
                {
                    Vector3D velocity = velocities[i / 4];

                    axisAngle.Axis = angularVelocities[i / 4];
                    axisAngle.Angle = angularVelocities[i / 4].Length;
                    rotation.CenterX = centers[i / 4].X;
                    rotation.CenterY = centers[i / 4].Y;
                    rotation.CenterZ = centers[i / 4].Z;

                    positions[i] = rotation.Transform(positions[i]) + velocity;
                    positions[i + 1] = rotation.Transform(positions[i + 1]) + velocity;
                    positions[i + 2] = rotation.Transform(positions[i + 2]) + velocity;
                    positions[i + 3] = rotation.Transform(positions[i + 3]) + velocity;

                    centers[i / 4] += velocity;
                }
                mesh.Positions = positions;
            };
            timer.Start();            
        }
Ejemplo n.º 20
0
 void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
     switch (connectionId)
     {
     case 1:
     
     #line 18 "..\..\..\Views\ImageViewer.xaml"
     ((System.Windows.Media.Animation.Storyboard)(target)).Completed += new System.EventHandler(this.FadeOutBorder_OnCompleted);
     
     #line default
     #line hidden
     return;
     case 2:
     
     #line 32 "..\..\..\Views\ImageViewer.xaml"
     ((System.Windows.Controls.Grid)(target)).MouseEnter += new System.Windows.Input.MouseEventHandler(this.Grid_MouseEnter);
     
     #line default
     #line hidden
     
     #line 32 "..\..\..\Views\ImageViewer.xaml"
     ((System.Windows.Controls.Grid)(target)).MouseLeave += new System.Windows.Input.MouseEventHandler(this.Grid_MouseLeave);
     
     #line default
     #line hidden
     return;
     case 3:
     this.ImageBorder = ((System.Windows.Controls.Border)(target));
     return;
     case 4:
     this.TransitionBox = ((Transitionals.Controls.TransitionElement)(target));
     return;
     case 5:
     this.brdControlsBottom = ((System.Windows.Controls.Border)(target));
     return;
     case 6:
     this.imgPrev = ((System.Windows.Controls.Image)(target));
     
     #line 52 "..\..\..\Views\ImageViewer.xaml"
     this.imgPrev.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.imgPrev_MouseDown);
     
     #line default
     #line hidden
     return;
     case 7:
     this.imgPausePlay = ((System.Windows.Controls.Image)(target));
     
     #line 84 "..\..\..\Views\ImageViewer.xaml"
     this.imgPausePlay.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.imgPausePlay_MouseDown);
     
     #line default
     #line hidden
     return;
     case 8:
     this.imgNext = ((System.Windows.Controls.Image)(target));
     
     #line 102 "..\..\..\Views\ImageViewer.xaml"
     this.imgNext.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.imgNext_MouseDown);
     
     #line default
     #line hidden
     return;
     case 9:
     this.tbImageName = ((System.Windows.Controls.TextBlock)(target));
     return;
     }
     this._contentLoaded = true;
 }
Ejemplo n.º 21
0
        private static void OnContentTemplateSelectorChanged(object element, DependencyPropertyChangedEventArgs e)
        {
            TransitionElement te = (TransitionElement)element;

            te.NewContentPresenter.ContentTemplateSelector = (DataTemplateSelector)e.NewValue;
        }
Ejemplo n.º 22
0
        protected override void BeginTransition3D(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent, Viewport3D viewport)
        {
            int xparticles = 10, yparticles = 10;
            Size size = transitionElement.RenderSize;

            if (size.Width > size.Height)
                yparticles = (int)(xparticles * size.Height / size.Width);
            else
                xparticles = (int)(yparticles * size.Width / size.Height);

            MeshGeometry3D mesh = CreateMesh(new Point3D(), new Vector3D(size.Width, 0, 0), new Vector3D(0, size.Height, 0), xparticles - 1, yparticles - 1, new Rect(0, 0, 1, 1));
            Brush cloneBrush = CreateBrush(oldContent);
            Material clone = new DiffuseMaterial(cloneBrush);
            

            double ustep = size.Width / (xparticles - 1), vstep = size.Height / (yparticles - 1);

            Point3DCollection points = mesh.Positions;

            
            Point3DCollection oldPoints = points.Clone();

            double timeStep = 1.0 / 30.0;
            DispatcherTimer timer = new DispatcherTimer();
            timer.Interval = TimeSpan.FromSeconds(timeStep);
            double time = 0;
            double duration = this.Duration.HasTimeSpan ? this.Duration.TimeSpan.TotalSeconds : 2;
            timer.Tick += delegate
            {
                time = time + timeStep;
                Point mousePos = Mouse.GetPosition(viewport);
                Point3D mousePos3D = new Point3D(mousePos.X, mousePos.Y, -10);
                    
                // Cloth physics based on work of Thomas Jakobsen http://www.ioi.dk/~thomas
                for (int i = 0; i < oldPoints.Count; i++)
                {
                    Point3D currentPoint = points[i];
                    Point3D newPoint = currentPoint + 0.9 * (currentPoint - oldPoints[i]);

                    if (newPoint.Y > size.Height)
                        newPoint.Y = size.Height;

                    oldPoints[i] = newPoint;
                }

                //for (int j = 0; j < 5; j++)
                //for (int i = oldPoints.Count - 1; i > 0 ; i--)
                for (int a = yparticles - 1; a >= 0; a--)
                for (int b = xparticles - 1; b >= 0; b--)
                {
                    int i = b * yparticles + a;
                    // constrain with point to the left
                    if (i > yparticles)
                        Constrain(oldPoints, i, i - yparticles, ustep);
                    // constrain with point to the top
                    if (i % yparticles != 0)
                        Constrain(oldPoints, i, i - 1, vstep);

                    // constrain the sides 
                    if (a == 0)
                        oldPoints[i] = new Point3D(oldPoints[i].X, 0, oldPoints[i].Z);
                    if (a == yparticles - 1)
                        oldPoints[i] = new Point3D(oldPoints[i].X, size.Height, oldPoints[i].Z);

                    if (b == 0)
                        oldPoints[i] = new Point3D(0, a * size.Height / (yparticles - 1), 0);

                    if (b == xparticles - 1)
                    {
                        double angle = time / duration * Math.PI / (0.8 + 0.5 * (yparticles - (double)a) / yparticles);
                        oldPoints[i] = new Point3D(size.Width * Math.Cos(angle), a * size.Height / (yparticles - 1), -size.Width * Math.Sin(angle));
                    }
                }

                if (time > (duration - 0))
                {
                    timer.Stop();
                    EndTransition(transitionElement, oldContent, newContent);
                }

                // Swap position arrays
                mesh.Positions = oldPoints;
                oldPoints = points;
                points = mesh.Positions;
            };
            timer.Start();
            

            GeometryModel3D geo = new GeometryModel3D(mesh, clone);
            geo.BackMaterial = clone;
            ModelVisual3D model = new ModelVisual3D();
            model.Content = geo;

            // Replace old content in visual tree with new 3d model
            transitionElement.HideContent(oldContent);
            viewport.Children.Add(model);
        }
Ejemplo n.º 23
0
 // Called when an element is Removed from the TransitionPresenter's visual tree
 protected internal virtual void BeginTransition(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
 {
     EndTransition(transitionElement, oldContent, newContent);
 }
Ejemplo n.º 24
0
        protected override void BeginTransition3D(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent, Viewport3D viewport)
        {
            Size size = transitionElement.RenderSize;

            Point3D origin = new Point3D(); // origin of 2nd face
            Vector3D u = new Vector3D(), v = new Vector3D(); // u & v vectors of 2nd face

            double angle = Angle;
            Point3D rotationCenter;
            Vector3D rotationAxis;
            RotateDirection direction = Direction;

            TranslateTransform3D translation = null;
            double angleRads = Angle * Math.PI / 180;
            if (direction == RotateDirection.Left || direction == RotateDirection.Right)
            {
                if (Contained)
                {
                    rotationCenter = new Point3D(direction == RotateDirection.Left ? size.Width : 0, 0, 0);
                    translation = new TranslateTransform3D();
                    DoubleAnimation x = new DoubleAnimation(direction == RotateDirection.Left ? -size.Width : size.Width, Duration);
                    translation.BeginAnimation(TranslateTransform3D.OffsetXProperty, x);
                }
                else
                {
                    rotationCenter = new Point3D(size.Width / 2, 0, size.Width / 2 * Math.Tan(angle / 2 * Math.PI / 180));
                }
                
                rotationAxis = new Vector3D(0, 1, 0);

                if (direction == RotateDirection.Left)
                {
                    u.X = -size.Width * Math.Cos(angleRads);
                    u.Z = size.Width * Math.Sin(angleRads);

                    origin.X = size.Width;
                }
                else
                {
                    u.X = -size.Width * Math.Cos(angleRads);
                    u.Z = -size.Width * Math.Sin(angleRads);

                    origin.X = -u.X;
                    origin.Z = -u.Z;
                }
                v.Y = size.Height;
            }
            else
            {
                if (Contained)
                {
                    rotationCenter = new Point3D(0, direction == RotateDirection.Up ? size.Height : 0, 0);
                    translation = new TranslateTransform3D();
                    DoubleAnimation y = new DoubleAnimation(direction == RotateDirection.Up ? -size.Height : size.Height, Duration);
                    translation.BeginAnimation(TranslateTransform3D.OffsetYProperty, y);
                }
                else
                {
                    rotationCenter = new Point3D(0, size.Height / 2, size.Height / 2 * Math.Tan(angle / 2 * Math.PI / 180));
                }
                
                rotationAxis = new Vector3D(1, 0, 0);

                if (direction == RotateDirection.Up)
                {
                    v.Y = -size.Height * Math.Cos(angleRads);
                    v.Z = size.Height * Math.Sin(angleRads);

                    origin.Y = size.Height;
                }
                else
                {
                    v.Y = -size.Height * Math.Cos(angleRads);
                    v.Z = -size.Height * Math.Sin(angleRads);

                    origin.Y = -v.Y;
                    origin.Z = -v.Z;
                }
                u.X = size.Width;
            }

            double endAngle = 180 - angle;
            if (direction == RotateDirection.Right || direction == RotateDirection.Up)
                endAngle = -endAngle;

            ModelVisual3D m1, m2;
            viewport.Children.Add(m1 = MakeSide(oldContent, new Point3D(), new Vector3D(size.Width,0,0), new Vector3D(0,size.Height,0), endAngle, rotationCenter, rotationAxis, null));
            viewport.Children.Add(m2 = MakeSide(newContent, origin, u, v, endAngle, rotationCenter, rotationAxis, delegate
                {
                    EndTransition(transitionElement, oldContent, newContent);
                }));

            m1.Transform = m2.Transform = translation;

            // Replace old and new content in visual tree with new 3d models
            transitionElement.HideContent(oldContent);
            transitionElement.HideContent(newContent);
        }
Ejemplo n.º 25
0
        //Transitions should call this method when they are done 
        protected void EndTransition(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
        {
            OnTransitionEnded(transitionElement, oldContent, newContent);

            if (transitionElement != null)
            {
                transitionElement.OnTransitionCompleted(this, oldContent, newContent);
            }
        }
Ejemplo n.º 26
0
 /// <summary>
 /// Called when the transition ends.
 /// </summary>
 /// <param name="transitionElement">The transition element.</param>
 /// <param name="oldContent">The old content.</param>
 /// <param name="newContent">The new content.</param>
 protected override void OnTransitionEnded(TransitionElement transitionElement, ContentPresenter oldContent, ContentPresenter newContent)
 {
     newContent.ClearValue(UIElement.RenderTransformProperty);
     oldContent.ClearValue(UIElement.RenderTransformProperty);
 }
Ejemplo n.º 27
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.TransitionBox = ((Transitionals.Controls.TransitionElement)(target));
                return;

            case 2:
                this.PageFirst = ((System.Windows.Controls.ListBox)(target));

            #line 53 "..\..\..\..\PageControl\Pager.xaml"
                this.PageFirst.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.PageFirst_SelectionChanged);

            #line default
            #line hidden
                return;

            case 3:
                this.pgSize = ((System.Windows.Controls.Label)(target));
                return;

            case 4:
                this.pages = ((System.Windows.Controls.Label)(target));
                return;

            case 5:
                this.number = ((System.Windows.Controls.Label)(target));
                return;

            case 6:
                this.count = ((System.Windows.Controls.Label)(target));
                return;

            case 7:
                this.btnFirst = ((System.Windows.Controls.Button)(target));

            #line 117 "..\..\..\..\PageControl\Pager.xaml"
                this.btnFirst.Click += new System.Windows.RoutedEventHandler(this.BFirstPage_Click);

            #line default
            #line hidden
                return;

            case 8:
                this.btnPrev = ((System.Windows.Controls.Button)(target));

            #line 127 "..\..\..\..\PageControl\Pager.xaml"
                this.btnPrev.Click += new System.Windows.RoutedEventHandler(this.BPreviousPage_Click);

            #line default
            #line hidden
                return;

            case 9:
                this.currentPage = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 10:
                this.btnNext = ((System.Windows.Controls.Button)(target));

            #line 142 "..\..\..\..\PageControl\Pager.xaml"
                this.btnNext.Click += new System.Windows.RoutedEventHandler(this.BNextPage_Click);

            #line default
            #line hidden
                return;

            case 11:
                this.btnLast = ((System.Windows.Controls.Button)(target));

            #line 152 "..\..\..\..\PageControl\Pager.xaml"
                this.btnLast.Click += new System.Windows.RoutedEventHandler(this.BLastPage_Click);

            #line default
            #line hidden
                return;

            case 12:
                this.PageIndex = ((System.Windows.Controls.TextBox)(target));

            #line 163 "..\..\..\..\PageControl\Pager.xaml"
                this.PageIndex.KeyDown += new System.Windows.Input.KeyEventHandler(this.PageIndex_KeyDown);

            #line default
            #line hidden

            #line 163 "..\..\..\..\PageControl\Pager.xaml"
                this.PageIndex.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.PageIndex_TextChanged);

            #line default
            #line hidden
                return;

            case 13:
                this.jumpBnt = ((System.Windows.Controls.Button)(target));

            #line 164 "..\..\..\..\PageControl\Pager.xaml"
                this.jumpBnt.Click += new System.Windows.RoutedEventHandler(this.BJump_Click);

            #line default
            #line hidden
                return;
            }
            this._contentLoaded = true;
        }
Ejemplo n.º 28
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:

            #line 18 "..\..\..\Views\ImageViewer.xaml"
                ((System.Windows.Media.Animation.Storyboard)(target)).Completed += new System.EventHandler(this.FadeOutBorder_OnCompleted);

            #line default
            #line hidden
                return;

            case 2:

            #line 32 "..\..\..\Views\ImageViewer.xaml"
                ((System.Windows.Controls.Grid)(target)).MouseEnter += new System.Windows.Input.MouseEventHandler(this.Grid_MouseEnter);

            #line default
            #line hidden

            #line 32 "..\..\..\Views\ImageViewer.xaml"
                ((System.Windows.Controls.Grid)(target)).MouseLeave += new System.Windows.Input.MouseEventHandler(this.Grid_MouseLeave);

            #line default
            #line hidden
                return;

            case 3:
                this.ImageBorder = ((System.Windows.Controls.Border)(target));
                return;

            case 4:
                this.TransitionBox = ((Transitionals.Controls.TransitionElement)(target));
                return;

            case 5:
                this.brdControlsBottom = ((System.Windows.Controls.Border)(target));
                return;

            case 6:
                this.imgPrev = ((System.Windows.Controls.Image)(target));

            #line 52 "..\..\..\Views\ImageViewer.xaml"
                this.imgPrev.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.imgPrev_MouseDown);

            #line default
            #line hidden
                return;

            case 7:
                this.imgPausePlay = ((System.Windows.Controls.Image)(target));

            #line 84 "..\..\..\Views\ImageViewer.xaml"
                this.imgPausePlay.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.imgPausePlay_MouseDown);

            #line default
            #line hidden
                return;

            case 8:
                this.imgNext = ((System.Windows.Controls.Image)(target));

            #line 102 "..\..\..\Views\ImageViewer.xaml"
                this.imgNext.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.imgNext_MouseDown);

            #line default
            #line hidden
                return;

            case 9:
                this.tbImageName = ((System.Windows.Controls.TextBlock)(target));
                return;
            }
            this._contentLoaded = true;
        }
        /// <summary>
        /// When overridden in a derived class, is invoked whenever application code or internal processes call <see cref="M:System.Windows.FrameworkElement.ApplyTemplate"/>.
        /// </summary>
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            _transitionElement = (TransitionElement) GetTemplateChild("PART_TransitionElement");
        }